我想把oracle转换成mysql,语句如下:
create table bbsuser(
username VARCHAR(20) PRIMARY KEY,
password VARCHAR(20) NOT NULL,
nickname VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,
birthyear VARCHAR(4) NOT NULL,
birthmonth VARCHAR(4) NOT NULL,
birthday VARCHAR(4) NOT NULL,
e_mail VARCHAR(50) NOT NULL,
mobile VARCHAR(20) NULL,
signature VARCHAR(250) NULL,
usergrade VARCHAR(20) NULL,
userscore VARCHAR(20) NULL
)TYPE=INNODB;create table sort(
id INT PRIMARY KEY,
sortname VARCHAR(20) NOT NULL,
master VARCHAR(20) NULL
REFERENCES bbsuser(username) ON DELETE CASCADE
)TYPE=INNODB;create table topic(
id INT PRIMARY KEY,
topicname VARCHAR(20) NOT NULL,
topiccontent VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
sortid INT NOT NULL,
REFERENCES sort(id) ON DELETE CASCADE
)TYPE=INNODB;create table responses(
id INT PRIMARY KEY,
title VARCHAR(20) NOT NULL,
content VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
topicid INT NOT NULL,
REFERENCES topic(id) ON DELETE CASCADE
)TYPE=INNODB;create table bbsuser(
username VARCHAR(20) PRIMARY KEY,
password VARCHAR(20) NOT NULL,
nickname VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,
birthyear VARCHAR(4) NOT NULL,
birthmonth VARCHAR(4) NOT NULL,
birthday VARCHAR(4) NOT NULL,
e_mail VARCHAR(50) NOT NULL,
mobile VARCHAR(20) NULL,
signature VARCHAR(250) NULL,
usergrade VARCHAR(20) NULL,
userscore VARCHAR(20) NULL
)TYPE=INNODB;create table sort(
id INT PRIMARY KEY,
sortname VARCHAR(20) NOT NULL,
master VARCHAR(20) NULL
REFERENCES bbsuser(username) ON DELETE CASCADE
)TYPE=INNODB;create table topic(
id INT PRIMARY KEY,
topicname VARCHAR(20) NOT NULL,
topiccontent VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
sortid INT NOT NULL,
REFERENCES sort(id) ON DELETE CASCADE
)TYPE=INNODB;create table responses(
id INT PRIMARY KEY,
title VARCHAR(20) NOT NULL,
content VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
topicid INT NOT NULL,
REFERENCES topic(id) ON DELETE CASCADE
)TYPE=INNODB;可运行时,创建前面两个表成功了。后面两个,也就是topic和responses时发生了错误,错误提示如下:
ERROR 1064 (42000):You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES bbsuser(username) ON DELETE CASCADE,time DATE ' at line 6 为什么会这样啊??希望哪位高手能够指点迷津!!谢谢!
create table bbsuser(
username VARCHAR(20) PRIMARY KEY,
password VARCHAR(20) NOT NULL,
nickname VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,
birthyear VARCHAR(4) NOT NULL,
birthmonth VARCHAR(4) NOT NULL,
birthday VARCHAR(4) NOT NULL,
e_mail VARCHAR(50) NOT NULL,
mobile VARCHAR(20) NULL,
signature VARCHAR(250) NULL,
usergrade VARCHAR(20) NULL,
userscore VARCHAR(20) NULL
)TYPE=INNODB;create table sort(
id INT PRIMARY KEY,
sortname VARCHAR(20) NOT NULL,
master VARCHAR(20) NULL
REFERENCES bbsuser(username) ON DELETE CASCADE
)TYPE=INNODB;create table topic(
id INT PRIMARY KEY,
topicname VARCHAR(20) NOT NULL,
topiccontent VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
sortid INT NOT NULL,
REFERENCES sort(id) ON DELETE CASCADE
)TYPE=INNODB;create table responses(
id INT PRIMARY KEY,
title VARCHAR(20) NOT NULL,
content VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
topicid INT NOT NULL,
REFERENCES topic(id) ON DELETE CASCADE
)TYPE=INNODB;create table bbsuser(
username VARCHAR(20) PRIMARY KEY,
password VARCHAR(20) NOT NULL,
nickname VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,
birthyear VARCHAR(4) NOT NULL,
birthmonth VARCHAR(4) NOT NULL,
birthday VARCHAR(4) NOT NULL,
e_mail VARCHAR(50) NOT NULL,
mobile VARCHAR(20) NULL,
signature VARCHAR(250) NULL,
usergrade VARCHAR(20) NULL,
userscore VARCHAR(20) NULL
)TYPE=INNODB;create table sort(
id INT PRIMARY KEY,
sortname VARCHAR(20) NOT NULL,
master VARCHAR(20) NULL
REFERENCES bbsuser(username) ON DELETE CASCADE
)TYPE=INNODB;create table topic(
id INT PRIMARY KEY,
topicname VARCHAR(20) NOT NULL,
topiccontent VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
sortid INT NOT NULL,
REFERENCES sort(id) ON DELETE CASCADE
)TYPE=INNODB;create table responses(
id INT PRIMARY KEY,
title VARCHAR(20) NOT NULL,
content VARCHAR(2000) NULL,
owner VARCHAR(20) NOT NULL,
REFERENCES bbsuser(username) ON DELETE CASCADE ,
time DATE NOT NULL,
topicid INT NOT NULL,
REFERENCES topic(id) ON DELETE CASCADE
)TYPE=INNODB;可运行时,创建前面两个表成功了。后面两个,也就是topic和responses时发生了错误,错误提示如下:
ERROR 1064 (42000):You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES bbsuser(username) ON DELETE CASCADE,time DATE ' at line 6 为什么会这样啊??希望哪位高手能够指点迷津!!谢谢!
FOREIGN KEY (myfk) REFERENCES bbsuser(username),
CONSTRAINT `FK_UserName` FOREIGN KEY (`username`) REFERENCES `bbsuser` (`username`)