一起执行 会报错 !!把最后一句(红字的)删掉 就没问题了!我看网上的外键是这么写的,请来帮忙看看怎么改!或有别的写法吗?
use test;
create table user(`id` int not null  AUTO_INCREMENT, `username` varchar(20) not null,`password` varchar(10) not null,`birthday` date not null,primary key(`id`));create table music(`id` int not null auto_increment,`songnm` varchar(50) not null,`singer` varchar(50) not null ,`classid` varchar(20) not null ,`licyer` blob ,`special` varchar(15) ,`song`varchar(25) not null,`specialpic` varchar(25),primary key(`id`));create table class(`id` int not null auto_increment,`classname` varchar(15) not null ,primary key(`id`) );alter table music ADD INDEX idx_classid(`classid`);
alter table class ADD INDEX idx_id(`id`);
alter table music ADD CONSTRAINT fk_classid FOREIGN KEY(`classid`) REFERENCES class(`id`);

解决方案 »

  1.   


    create table `user`
    (`id` int not null  AUTO_INCREMENT, 
    `username` varchar(20) not null,
    `password` varchar(10) not null,
    `birthday` date not null,
    primary key(`id`)
    ) engine innodb;create table music
    (`id` int not null auto_increment,
    `songnm` varchar(50) not null,
    `singer` varchar(50) not null ,
    `classid` int not null ,
    `licyer` blob ,
    `special` varchar(15) ,
    `song`varchar(25) not null,
    `specialpic` varchar(25),
    primary key(`id`)
    ) engine innodb;create table class
    (`id` int not null auto_increment,
    `classname` varchar(15) not null,
    primary key(`id`) 
    ) engine innodb;alter table music ADD INDEX idx_classid(`classid`);
    alter table music ADD CONSTRAINT fk_classid FOREIGN KEY (`classid`) REFERENCES class(`id`);
      

  2.   

    谢谢楼上的朋友!这句不要了“alter table class ADD INDEX idx_id(`id`);” 是因为 class表中 id 本身就是主索引键 所以不需要在建立索引了是嘛?
      

  3.   

    注意CLASSID必须和所依赖的主表字段类型一致!!
      

  4.   

    - - 我更改完 还是不能一起执行 !我先建表 成功后!在单独执行 外键的那句话 就成!
    改后的:
    use test;create table user(`id` int not null  AUTO_INCREMENT, `username` varchar(20) not null,`password` varchar(10) not null,`birthday` date not null,primary key(`id`));
    create table music(`id` int not null auto_increment,`songnm` varchar(50) not null,`singer` varchar(50) not null ,`classid` int not null ,`licyer` blob ,`special` varchar(15) ,`song`varchar(25) not null,`specialpic` varchar(25),primary key(`id`));create table class(`id` int not null auto_increment,`classname` varchar(15) not null ,primary key(`id`) );
    alter table music ADD INDEX idx_classid(`classid`);alter table music ADD CONSTRAINT fk_classid FOREIGN KEY(`classid`) REFERENCES class(`id`);