1

外部キーを使用して2つのテーブルをリンクしようとしています。1つのテーブルはusersで、もう1つはuserInfoです。ユーザーを削除するときは、そのユーザーの情報も削除したいと思います。usersテーブルからユーザーを削除しても、usersInfoのエントリはまだそこにあります。何が間違っているのか理解できないようです。

CREATE TABLE users (
userid INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password VARCHAR(32) NOT NULL,
userlevel INT UNSIGNED NOT NULL,
rating int,
organization int(1),
timestamp varchar(20) NOT NULL,
);

これがuserinfoの私のテーブルです。はい、私はそれが同じテーブルにある可能性があることを知っています。簡単な例としてこれを行っています。

CREATE TABLE usersInfo(
userid int  auto_increment NOT NULL,
userlocation varchar(50),
about varchar(300),
userkeywords varchar(150),
FOREIGN KEY(userid) REFERENCES users(userid) ON DELETE CASCADE ON UPDATE CASCADE
);

編集-問題は解決しました。助けてくれたみんなに感謝します。

ステートメントTYPE = InnoDBの最後に追加されました。CREATE TABLE

4

1 に答える 1

3

ENGINE=INNODBこれらのステートメントに追加してCREATE TABLE、それらが InnoDB テーブルであることを確認します。5.5.5 より前の MySQL バージョンは、外部キー関係をサポートしない MyISAM にデフォルト設定されますが、外部キー関係を定義してもエラーは発生しません。

于 2012-04-30T22:12:00.433 に答える