我期待一个新列添加到使用提供here和hereALTER TABLE ADD COLUMN和自动列列表中
本质的建议表,我想(fields_in_orig_table)将自动填充,并不必手动输入(有许多列和表,这会更改表):
CREATE TABLE games_new LIKE games_orig;
ALTER TABLE games_new ADD COLUMN location varchar(256);
INSERT INTO games_new (fields_in_orig_table) SELECT * FROM games_orig;
RENAME TABLE games_orig TO games_old, games_new TO games_orig;
DROP TABLE games_old;
我的想法去解决此问题:
CREATE TABLE games_new LIKE games_orig;
ALTER TABLE games_new ADD COLUMN version varchar(256);
INSERT INTO games_new
(SELECT CONCAT(GROUP_CONCAT(column_name ORDER BY ordinal_position
SEPARATOR " , "), " ") AS columns
FROM information_schema.columns
WHERE table_schema = 'games' AND table_name = 'games_orig')
SELECT * FROM games_orig;
RENAME TABLE games_orig TO games_old, games_new TO games_orig;
DROP TABLE games_old;
这给我语法错误(靠近Select concat ....)。
原来的语法来获得逗号分隔的列清单是:
SELECT CONCAT("'", GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR "', '"), "'") AS columns
FROM information_schema.columns
WHERE table_schema = 'db_name' AND table_name = 'tbl_name'
在我的询问,我已经删除了额外的引号,因为我认为我的查询不需要引号作为列上市的一部分。
我在这里做错了什么?谁可以帮忙?
如果您设置了SQL小提琴,它可能会更容易帮助我们 – cameronjonesweb 2015-02-10 07:14:45
将很快做... – Stan 2015-02-10 07:22:20
创建SQL小提琴:http://www.sqlfiddle.com/#! 2/b7a76e/3 – Stan 2015-02-10 07:54:38