【发布时间】:2012-10-06 01:28:25
【问题描述】:
假设我们有一个名为 users 的表:
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 users 但我希望重新创建单独的插入语句以将它们保存在日志中......我知道这听起来很奇怪,但我正在制作一个自定义 CMS,其中记录了所有内容,并希望更新/删除的行可以在某个时间点回滚...因此我需要从表数据中重新创建精确的插入查询(我已经在整个网络上搜索了答案但找不到...)
是否有一个查询会“自动”返回按主键插入特定行的查询?
我正在寻找可以执行此操作的查询:
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 编写它不会花费太多!
-
您是否需要它以与最初执行相同的顺序返回 INSERT 语句?还是任何有效的 INSERT 语句集合都足够好?如果是后者,
mysqldump应该做你想做的事。
标签: php mysql return-value