sql主键外键插入问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 20:05:38
表table1,cid主键,table2,cid与table1相关联,现在想在table2中增加一条记录,但这条记录里面的cid并不存在于table1的cid中,难道必须自己先用insert在table1里面增加一条记录吗?如果我有10000条该怎么办?难道都要这样自己手动加吗?哪位高手指点一下,有好的办法没有?如果有,请给个小例子。分先给100,答得好再加。

一般来说是先写table1再写table2,这个逻辑处理的,你的特殊情况如下处理吧:
写个触发器,table2内容自动加到table1表中

可以使用触发器啊!
CREATE TABLE tabl1(cid int primary key)

CREATE TABLE tabl2(cid int )

CREATE TRIGGER upt ON table2
AFTER INRERT
AS
DECLARE @a INT
SET @a=cid FROM instered
INSERT table1(cid) VALUES(@a)
试试看行不?

table2中的cid字段设置为可以为空。则在table2中可不填cid字段而添加记录。
下面是我在mysql 5.5数据库上做的例子,已测试通过:
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) default NULL,
`sex` varchar(2) default NULL,
`age` varchar(3) default NULL,
`address` varchar(50) default NULL,
`telNum` varchar(11) default NULL,
`mobileNum` varchar(11) default NULL,
`officeNum` varchar(11) default NULL,
`postcode` varchar(6) default NULL,
`email` varchar(30) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `class` (
`id` int(11) NOT NU