1

そのうちの1つに外部キーを使用して2つの異なるテーブルを作成しています。

mailboxテーブルから送信者と受信者を関連付ける必要がありますusers.item1

コードを試してみると、次のエラーが発生します。

ご使用のバージョンのMySQLの構文を確認してください

私がやったこと、私は5.5.25を実行しています

マニュアルには私が試した例が示されていますが、それでもエラーが発生します。

$sql="CREATE TABLE users(
    id INT NOT NULL AUTO_INCREMENT,
    item1 VARCHAR(32),
    item2 VARCHAR(32),password VARCHAR(32),
    PRIMARY KEY (id))";

if ($query = mysqli_query($con,$sql))
    echo "Table users created successfully";
else
    echo "Error creating table: " . mysqli_error($con);

$sql = "CREATE TABLE mailbox(
    id INT NOT NULL AUTO_INCREMENT, 
    item VARCHAR(32), 
    subject VARCHAR(32), 
    item  VARCHAR(64), 
    sender VARCHAR(32), 
    receiver VARCHAR(32), 
    item INT, PRIMARY KEY (id)
    FOREIGN KEY (id) REFERENCES users(id))";
4

1 に答える 1

1

sender and receiver from mailbox..テーブルをusers table item1..に関連付ける必要があります

CREATE TABLE users
(
    id INT NOT NULL AUTO_INCREMENT,
    item1 VARCHAR(32),
    item2 VARCHAR(32),
    password VARCHAR(32),
    PRIMARY KEY (id),
    KEY(item1)
);

CREATE TABLE mailbox
(
    id INT NOT NULL AUTO_INCREMENT, 
    item VARCHAR(32), 
    subject VARCHAR(32), 
    sender VARCHAR(32), 
    receiver VARCHAR(32), 
    PRIMARY KEY (id),
    CONSTRAINT tb_fk1 FOREIGN KEY (sender)
        REFERENCES users(item1),
    CONSTRAINT tb_fk2 FOREIGN KEY (receiver)
        REFERENCES users(item1)
)

itemフォローアップの質問: tableに name の列が 3 つあるのはなぜmailboxですか?

于 2013-03-01T04:47:24.850 に答える