是否可以在ALTER TABLE上使用LIKE语句,类似于MySQL中的CREATE TABLE?
EG。 'CREATE TABLE db.tbl1 LIKE db.tbl2'
这将克隆数据库表的结构。我想改变具有相同列的现有表,但要获取另一个表的主键。
我在考虑类似'ALTER TABLE db.tbl1 LIKE db.tbl2'之类的内容,但这会引发错误。
有什么想法吗?
由于
答案 0 :(得分:1)
ALTER TABLE可以做的所有内容都解释为here。
如您所见,未提及从另一个表导入索引。你可以通过一些聪明的information_schema
查询来做到这一点,但我不认为这是值得的。
答案 1 :(得分:1)
我需要类似的东西,并决定使用以下程序:
ALTER TABLE tbl1 RENAME tbl1_old;
CREATE TABLE tbl1 LIKE tbl2;
INSERT INTO tbl1 SELECT * FROM tbl1_old;
DROP TABLE tbl1_old;
尽管这不是一个应该完成这项工作的单一声明。唯一的问题可能是不同的索引设置(UNIQUE等),这些设置会在执行" INSERT INTO"原始表格内容。
答案 2 :(得分:0)
似乎是you can't。