1

MySql ワークベンチは、構文にエラーがないことを報告しています。データベースの何が問題なのかわかりません。何か案は?

CREATE TABLE `users` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `login` VARCHAR(35) NOT NULL UNIQUE,
    `pass` VARCHAR(35) NOT NULL,
    `fname` VARCHAR(35),
    `lname` VARCHAR(35),
    `gender` VARCHAR(1),
    `phone` VARCHAR(12),
    `appointments` INT,
    `groups` INT(1) NOT NULL,
    FOREIGN KEY (`groups`) references `groups`(`gnumber`)
);

CREATE TABLE `groups` (
    `gname` VARCHAR(25) NOT NULL,
    `gnumber` INT(1) NOT NULL
);

INSERT INTO `groups`(`gname`, `gnumber`) values ('user', 0);
INSERT INTO `groups`(`gname`, `gnumber`) values ('admin', 1);
INSERT INTO `users`(`login`, `pass`, `groups`) values ('admin', 'secret', 1);
4

1 に答える 1

3

エラーコードの150意味:

エラー メッセージがエラー 150 を示している場合は、外部キー制約が正しく形成されていないため、テーブルの作成に失敗しています。

これを修正するには、テーブルのgroups前にusersテーブルを作成するだけです。

編集:これを機能させるには、テーブルにgnumberキーを作成する必要もあります。groups

CREATE TABLE `groups` (
  `gname` varchar(25) NOT NULL,
  `gnumber` int(1) NOT NULL,
  PRIMARY KEY (`gnumber`)
);

それを主キーにするかどうかはわかりません。利用可能な設定をいじる必要がありますが、テーブルを作成して挿入を実行できる限り、これはローカルで機能します。

于 2013-11-09T17:56:38.020 に答える