像表一样

时间:2011-07-29 14:12:50

标签: mysql

是否可以在ALTER TABLE上使用LIKE语句,类似于MySQL中的CREATE TABLE?

EG。 'CREATE TABLE db.tbl1 LIKE db.tbl2'

这将克隆数据库表的结构。我想改变具有相同列的现有表,但要获取另一个表的主键。

我在考虑类似'ALTER TABLE db.tbl1 LIKE db.tbl2'之类的内容,但这会引发错误。

有什么想法吗?

由于

3 个答案:

答案 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