insert 语句应用请教

荣之梦 2003-08-18 09:22:02
我有两个结构相同的表!但是每个表都有自动生成的id主键

table1,table2

以下的语句不能实现数据从table2 插入 table1 是不是与这个id主键有关?要怎么解决呢?
谢谢!!!
INSERT INTO t1 SELECT * FROM t2 WHERE id = 3;



...全文
26 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuixin13 2003-08-18
  • 打赏
  • 举报
回复
哦,
没有问题呀,
出错信息是什么呀,
荣之梦 2003-08-18
  • 打赏
  • 举报
回复
那就这样吧。!我结贴了!!
谢谢[心帆]
shuixin13 2003-08-18
  • 打赏
  • 举报
回复
INSERT INTO t1
(main_name,book_name,book_http,book_email)
SELECT (main_name,book_name,book_http,book_email)
FROM t2
只有这个办法了
shuixin13 2003-08-18
  • 打赏
  • 举报
回复
INSERT INTO t1
(main_name,book_name,book_http,book_email)
SELECT (main_name,book_name,book_http,book_email)
FROM t2
荣之梦 2003-08-18
  • 打赏
  • 举报
回复
那还有别的方法吗?
jxbicestare 2003-08-18
  • 打赏
  • 举报
回复
既然你设定了id为主键,就必须是唯一的,除非撤消主键!
荣之梦 2003-08-18
  • 打赏
  • 举报
回复
不会要这样子吧

insert into t1 select main_name,book_name,book_http,book_email from t2



可以吗?
荣之梦 2003-08-18
  • 打赏
  • 举报
回复
哦。这样中!!
是id的事呀!

那我只想将t2的数据插入t1中,不想替代啊!
也就是我想将t2的数据插入到t1中,
相当于把t2的数据移入t1中啊!
insert into t1 select * from t2

ID这个事怎么解决啊。?
shuixin13 2003-08-18
  • 打赏
  • 举报
回复
ERROR 1062:Duplicate entry '1' for key 1

说明你的 t1 表中已存在了 id = 3 的记录了呀,

如果你确定需要使用 t2 中的数据代替 t1 表的中数据

那就用

REPLACE t1 SELECT * FROM t2 WHERE id = 3;
荣之梦 2003-08-18
  • 打赏
  • 举报
回复
表的结构如下table1 table2

CREATE TABLE table1(
main_name varchar(50) NOT NULL default '',
book_name varchar(50) NOT NULL default '',
book_http varchar(200) default NULL,
book_address varchar(200) NOT NULL default '',
book_person varchar(20) NOT NULL default '',
book_tel varchar(20) default NULL,
book_mob varchar(20) default NULL,
book_mail varchar(30) default NULL,
book_body blob NOT NULL,
book_input datetime default NULL,
book_output datetime NOT NULL default '0000-00-00 00:00:00',
id int(8) NOT NULL auto_increment,
PRIMARY KEY (id)
) TYPE=MyISAM;

CREATE TABLE table2 (
main_name varchar(50) NOT NULL default '',
book_name varchar(50) NOT NULL default '',
book_http varchar(200) default NULL,
book_address varchar(200) NOT NULL default '',
book_person varchar(20) NOT NULL default '',
book_tel varchar(20) default NULL,
book_mob varchar(20) default NULL,
book_mail varchar(30) default NULL,
book_body blob NOT NULL,
book_input datetime default NULL,
book_output datetime NOT NULL default '0000-00-00 00:00:00',
id int(8) NOT NULL auto_increment,
PRIMARY KEY (id)
) TYPE=MyISAM;

谢谢 [心帆]了!
荣之梦 2003-08-18
  • 打赏
  • 举报
回复
这是样子的出错如下:
ERROR 1062:Duplicate entry '1' for key 1

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧