0

過去スレ見ました。それらに従いましたが、ここでは構文エラーが発生します:

        create table temp (name varchar(20), id varchar(128), hash varchar(128),  
INDEX id, CONSTRAINT FOREIGN  KEY (id) references user_record(userid), CONSTRAINT 
FOREIGN KEY (hash) references post_data(hash));

エラー:

     #1064 - 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 ' CONSTRAINT FOREIGN KEY (id) 
references user_record(userid), CONSTRAINT FOREIGN ' at line 1

どこが間違い?

4

2 に答える 2

1

以下の例を参照してください。これが役立つ場合があります。これはユーザー テーブルです。

CREATE TABLE user(
userid INTEGER(8),
email VARCHAR(30),
password VARCHAR(30),
createdat datetime,
PRIMARY KEY(userid));

CREATE TABLE profile(
userid INTEGER(8),
firstname VARCHAR(20),
middlename VARCHAR(20),
lastname VARCHAR(20),
city VARCHAR(20),
state VARCHAR(20),
country VARCHAR(20),
zip INTEGER(5),
PRIMARY KEY(userid),
INDEX(userid),
CONSTRAINT FOREIGN KEY(userid) REFERENCES user(userid));

CREATE TABLE tags(
tagid INTEGER(8),
tagname VARCHAR(40),
PRIMARY KEY(tagid));

CREATE TABLE notes(
notesid INTEGER(8),
notes VARCHAR(50),
CONSTRAINT FOREIGN KEY(userid) REFERENCES user(userid),
CONSTRAINT FOREIGN KEY(tagid) REFERENCES tags(tagid));

子テーブルの外部キーにしようとしているキーは、親テーブルの主キーとして持つ必要があります。そうしないと、エラーが発生する可能性があります。

幸運を

于 2013-11-06T04:59:11.030 に答える