我有一个名为oc_product_to_category
的sql表sql table的例子。
product_id category_id
1 146
2 146
.. 146
16 147
17 147
... ...
1800 191
所以我的问题是我如何复制表格,只更改和更改category_id
?
所以我的结果需要像这样。 sql table nedded result的例子
product_id category_id
1 146
1 200
2 146
2 200
.. 146
.. 200
16 147
16 260
17 147
17 260
... ...
1800 191
1800 291
对不起解释不好但我无法导入图片。
INSERT INTO oc_product_to_category(category_id)SELECT" 147" FROM oc_product_to_category WHERE category_id = 146
我正在跟这样的somtheihng进行交易,但我得到了错误重复的enrty 147 - 0关键主要
答案 0 :(得分:2)
使用以下方法创建包含表格索引的精确副本:
CREATE TABLE new_table LIKE old_table;
然后插入
INSERT INTO new_table
SELECT whatever_the_logic_is_for_your_new_data FROM old_table;
如果您不想包含索引和外键约束,那么您也可以这样做:
CREATE TABLE new_table AS
SELECT whatever_the_logic_is_for_your_new_data FROM old_table;
答案 1 :(得分:0)
对于复制表,您可以使用以下查询:
Select * Into [NewTable] From oc_product_to_category
然后你必须更新表格,但我不知道200和260的确切来源 如果它们已经在表中,那么您不必更新只需在该表的select中添加Order by子句,如果它们不在表中,则必须添加。 请更具体地说明您要更新的内容