我想这样做
>获取名为博客的所有行.
>将它们复制到临时数据库中
>编辑此临时表记录的语言字段
>插入博客表
而我正在尝试这样:
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;
但是,列计数与第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 /类似))
-编辑-
也许是这样的???
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;