可能重复:
Get Insert Statement for existing row in MySQL如何从数据库中获取原始插入语句
假设我们有一个表叫做用户:
CREATE TABLE IF NOT EXISTS users(
UID int(11) PRIMARY KEY NOT NULL auto_increment,
fname varchar(100) default NULL,
lname varchar(100) default NULL,
username varchar(20) default NULL UNIQUE,
password blob
)ENGINE=InnoDB DEFAULT CHARSET=utf8
让我们假设有几个表格中填满了行。 我知道有一个查询返回表的创建 - > SHOW CREATE TABLE用户 但我期待重新创建单个插入语句以将它们保存在日志中...我知道这听起来很奇怪,但我正在制作一个所有记录的定制CMS,并希望更新/删除行可以在时间点回滚...因此,我需要重新从表中确切插入查询数据(我已经搜索了所有的网络上的答案,并可以' t找到它...)
是否有一个查询会自动返回通过主键插入特定行的查询?
我要寻找的查询将做到这一点:
SHOW INSERT FROM users WHERE PRIMARY_KEY=2
返回:
INSERT INTO users (UID,fname,lname,username,password) VALUES (2,'somename','somelastname','someusername','someAESencryptedPassword')
的原因,我想这样的查询将存在/可能是因为当你备份一个数据库与PHP myadmin(cpanel),你打开文件,你可以实际查看每个插入重新创建与该时间点的所有行的表...
PhpMyAdmin只是手动将数据库导出为SQL格式。我相信你所寻找的命令没有任何附近。但是,您可能会发现很好的脚本,以便像PhpMyAdmin一样从表结构和数据生成插入语句。 –
我相当确定没有这样的命令,但它不会花太多的时间写在PHP! – Erik
您是否需要按照它们最初的相同顺序返回INSERT语句?或者是否有任何有效的INSERT语句集合足够好?如果后者,'mysqldump'应该做你想要的。 – Barmar