我期待一個新列添加到使用提供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