当前位置: 代码迷 >> Java相关 >> 大家指点一下SQL
  详细解决方案

大家指点一下SQL

热度:103   发布时间:2007-07-24 09:55:27.0
大家指点一下SQL

程序代码:

drop table user;
create table user(
ID int(10) primary key auto_increment,
password varchar(10),
user_name varchar(10),
actor_id int(10)
);

insert into user values(1,'joe','joe',1);
insert into user values(2,'kan','kan',2);
insert into user values(3,'gern','gern',2);
insert into user values(4,'jone','jone',3);
insert into user values(5,'jack','jack',3);
insert into user values(6,'jake','jake',3);

ALTER TABLE user ADD CONSTRAINT fk_actor
FOREIGN KEY (actor_id)
REFERENCES actor(id);

drop table actor;
create table actor(
ID int(10) primary key auto_increment,
actor_name varchar(10)
);

insert into actor values(1,'sup_user');
insert into actor values(2,'gen_user');
insert into actor values(3,'sim_user');

drop table droit;
create table droit(
ID int(10) primary key auto_increment,
droit_name varchar(10),
actor_id int(10)
);

ALTER TABLE user ADD CONSTRAINT fk_driot
FOREIGN KEY (actor_id)
REFERENCES actor(id);

insert into droit values(1,'I',1);
insert into droit values(2,'D',1);
insert into droit values(3,'M',1);
insert into droit values(4,'S',1);
insert into droit values(5,'I',2);
insert into droit values(6,'M',2);
insert into droit values(7,'S',2);
insert into droit values(8,'S',3);


大家指点一下 看看我这个表建的是否有问题!尤其是最后一张表

搜索更多相关的解决方案: SQL  

----------------解决方案--------------------------------------------------------
ALTER TABLE droit ADD CONSTRAINT fk_driot //这里是droit不是user
FOREIGN KEY (actor_id)
REFERENCES actor(id);

如果前面的都对的话,最后一张也没问题的。我机子上一个数据库都没装,所以没法试。
但是我记得int类型是不需要给出长度的,默认是4位,而且在SqlServer里自动增长好像不是auto_increment,
不知道你用的是哪个数据库,。在插入数据的时候,自动增长的列是不用写数据的。
----------------解决方案--------------------------------------------------------
楼上正解
----------------解决方案--------------------------------------------------------
  相关解决方案