2017-07-03 2 views
0

データベースに2つのテーブルを接続しようとしています。 私はテーブルのユーザとテーブルの権限を持っています。SQL構文でデータベースにテーブルを接続する

Userテーブル:

CREATE TABLE `user` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `first_name` varchar(45) DEFAULT NULL, 
    `last_name` varchar(45) DEFAULT NULL, 
    `email` varchar(45) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

Authorities表:

CREATE TABLE `authorities` (
    `authorities_id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(45) DEFAULT NULL, 
    `authorities` varchar(45) DEFAULT NULL, 
    `user_id` int(11) DEFAULT NULL, 

    PRIMARY KEY (`authorities_id`), 
    CONSTRAINT FOREIGN KEY(`user_id`) REFERENCES user(`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

テーブルは次のように作成されました。権限テーブルを作成するときに、テーブルを作成できないというエラーが発生しました。私は間違って何をしていますか?

+2

あなたのテーブルは' user'を参照していますが、あなたのテーブルは 'student'と呼ばれています – HoneyBadger

+0

@HoneyBadger私はそれを編集しました。私の間違い。今はデータベースと同じです。 –

+0

エラーメッセージは何ですか? – HoneyBadger

答えて

1

コード以下のいずれかを使用し、 "CONSTRAINT" なし

CREATE TABLE `authorities` (
    `authorities_id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(45) DEFAULT NULL, 
    `authorities` varchar(45) DEFAULT NULL, 
    `user_id` int(11) DEFAULT NULL, 

    PRIMARY KEY (`authorities_id`), 
    FOREIGN KEY(`user_id`) REFERENCES user(`id`) 
    ON DELETE CASCADE 

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

または

「CONSTRAINT

に使用することはできませんInnoDB内で
CREATE TABLE `authorities` (
    `authorities_id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(45) DEFAULT NULL, 
    `authorities` varchar(45) DEFAULT NULL, 
    `user_id` int(11) DEFAULT NULL, 

    PRIMARY KEY (`authorities_id`), 
    CONSTRAINT `fk_authorities_user` FOREIGN KEY(`user_id`) REFERENCES user(`id`) 
    ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

link

1つのより多くの問題を名前を付けON DELETE SET DEFAULT "を選択すると、" ON DELETE CASCADE "または" ON DELE TE SET NULL "

+0

同じ:(まだ動作していません –

+0

innodbエンジンでもう1つ問題があります。DELETE SET DEFAULTを使用できません。 –

関連する問題