我想这样做
- 获取名为 table 的 blogs 中的所有行。
- 将它们复制到临时数据库中
- 编辑这个临时表记录的语言字段
- 插入博客表
我正在尝试这样:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
但是我得到重复的密钥错误......
我该如何预防?
-编辑-
我试过了:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
ALTER TABLE tmptable DROP id;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
但随后Column count doesn't match value count at row 1
-编辑-
我相信这会奏效(它确实有效,因为我知道存在多少记录)
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + 1000;
INSERT INTO blogs SELECT * FROM tmptable;
但我怎样才能正确地做到这一点?(只需为主键(id)设置下一个可用的自动增量值(没有 PHP/alike))
-编辑-
也许是这样的???
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + (SELECT id FROM blogs ORDER BY id DESC LIMIT 1);
INSERT INTO blogs SELECT * FROM tmptable;