SQL复制和更新表

时间:2014-09-18 10:15:31

标签: mysql sql

我有一个名为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关键主要

2 个答案:

答案 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子句,如果它们不在表中,则必须添加。 请更具体地说明您要更新的内容