2011-05-14 56 views
1

可能重复:
MySQL Foreign Key ReferencingMySQL的外键引用

我是个新蜂我创建SQL Server 2000中两个表时,已经使用的SQL Server 2000,我的问题之前说的位置,项目表项目有一个外键引用位置表时插入值时项目也更新这是不需要在项目表中的外键插入相似的值为什么在MySQL中不可能插入值时运用插入命令,并在项目中使用SELECT命令时,它不会显示外键值,请检查下面的代码

mysql> create table location(
    -> id int not null, 
    -> primary key(id)) 
    -> engine=innodb; 
Query OK, 0 rows affected (0.11 sec) 


mysql> create table projects(
    -> id int, 
    -> location_id int, 
    -> foreign key(location_id) references location(id) on update cascade on del 
ete cascade) 
    -> engine=innodb; 
Query OK, 0 rows affected (0.31 sec) 


mysql> insert into location values('1') 
Query OK, 1 row affected (0.34 sec) 

mysql> select * from location; 
+----+ 
| id | 
+----+ 
| 1 | 
+----+ 
1 row in set (0.00 sec) 

mysql> select * from projects; 
Empty set (0.00 sec) 

为u在上面的代码在SQL Server 2000中该值已经反映在有可能看到子表为什么不可能在MySql中为什么应该值插入两个表是不是可能在MySql中,当我插入位置表时项目表自动选择值并显示它在选择查询时,我查询项目表

+1

您在几分钟前发布了相同的问题。 –

+0

是的,这绝对是重复的,我在检查前已经回答。赶上@ypercube! –

回答

1

UPDATE - 我已经在重复问题上发布了相同的答案,似乎有更早的答复。

从我在示例中可以看到的情况来看,您尚未在要执行级联更新或删除的项目表中插入任何内容。

我建议作为一个更好的例子来证明你以后是可以执行下列行为:

insert into projects values (1,1); 
select * from projects; 
update location set id = 2 where id = 1; 
select * from projects; 

你应该最后看到的,是最初插入的项目排在LOCATION_ID会等于1,则更新位置后,项目中的location_id应更改为2.