SQL使用附加列将旧表迁移到新表

时间:2018-01-03 21:03:54

标签: mysql database

所以我试图在保持兼容性的同时将旧表迁移到新表,所以我的第一个猜测就是在插入旧日期时将所有内容映射到example_A到example_B。

无论如何,我的问题是我还应该做些什么来保持向后兼容性,例如使用关系?

谢谢!

CREATE TABLE example_A
(
  id INT
  price NUMERIC
  primary key (id)
)

CREATE TABLE example_B
(
  id INT
  price NUMERIC
  date DATE
  primary key (id, date)
)

1 个答案:

答案 0 :(得分:0)

大多数查询应兼容,他们只是忽略新列。以下是一些潜在的问题:

  • 使用SELECT *的查询。如果查询涉及带有JOIN列的另一个表的date,则结果中的date列将不明确它是引用此表还是其他表。< / LI>
  • 如果您使用具有date列的表加入,并且在没有表前缀的情况下引用该列,则由于含糊不清的引用,它将成为语法错误。
  • INSERT不列出特定列的语句将会中断,因为值的数量将不再与列数相匹配。

您还应该为新列指定默认值,以便不填写的INSERT个查询将有效。