我正在使用MySQL语句将数据从一个表复制到另一个表。
$sql2 = "INSERT one SELECT id, user_id, name FROM two WHERE user_id='1'";
两个表都使用相同的列:id
,user_id
和name
。
我想将数据从表two
复制到表one
。执行脚本时,我可以看到表two
中的所有数据都已复制到表one
中。也是列id
。
我想将id
表中的one
保留为唯一值。我不想将id
从表two
复制到one
。我只想复制列user_id
和name
并想自动递增表id
中的one
。
当我在不使用id
的情况下执行脚本时,出现错误,指出one
和two
中的列不相同。
有人知道我如何解决此问题并复制没有id
列的数据
答案 0 :(得分:3)
您可以在查询中使用以下语法:
INSERT INTO `one` (`user_id`, `name`) SELECT `user_id`, `name` FROM `two` WHERE `user_id` = 1
与WHERE
语句中的SELECT
子句匹配的行将被复制到表one
。
由于id
和SELECT
语句中都省略了INSERT
字段,因此根据自动增量值创建到one
的行将得到id
我假设user_id
是一个数字列(类型为int
,bigint
...),所以我删除了值1
周围的单引号。
如果字段包含字符串(例如类型为char
,varchar
...的列),则应使用引号