1

SQLでこのエラーを見つけることができません、誰か助けてもらえますか?

1064-SQL構文にエラーがあります。1行目の「IDMEDIUMINT(9)NOT NULL AUTO_INCREMENT、datetimeTIMESTAMP、title TEXT NOT」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

CREATE TABLE tableName1 (
    ID MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
    timestamp TIMESTAMP NOT NULL,
    title TEXT NOT NULL,
    titleEdited TEXT,
    description TEXT NOT NULL,
    descriptionEdited TEXT,
    URL VARCHAR(255) NOT NULL,
    URLEdited VARCHAR(255),
    imgPath VARCHAR(255) NOT NULL,
    PRIMARY KEY (ID),
    UNIQUE KEY (URL, imgPath)
)

CREATE TABLE tableName2 (
    ID MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
    linkID MEDIUMINT(9) NOT NULL,
    timestamp TIMESTAMP NOT NULL,
    comment TEXT NOT NULL,
    userID BIGINT(20) NOT NULL,
    PRIMARY KEY(ID),
    FOREIGN KEY(linkID) REFERENCES tableName1(ID),
    FOREIGN KEY(userID) REFERENCES users(ID)
)
4

2 に答える 2

2

ここで間違っているのは、mySQLを実行するたびにセミコロンが必要なことだけだと思います。create tableそれぞれをで終了する必要が;あり、これは機能するはずです

これを証明するSQLフィドルがあります。(そのテーブルはあなたの例にはないので、ユーザーへのFKを差し引いてください)

于 2012-04-25T16:12:07.963 に答える
0

このテーブルを作成してエラーが発生してもよろしいですか?私はそれらをうまく作成しました。

見た目がエラーで、datetimeという名前の別のフィールドを作成しようとしているようです。このタイプはタイムスタンプですか?日時は予約語です。バックティックを使用する必要があります。

'ID MEDIUMINT(9)NOT NULL AUTO_INCREMENT、datetimeTIMESTAMP、title TEXTNOT'1行目

于 2012-04-25T16:12:27.937 に答える