MySQL Workbench を使用してデータベースを設計し、SQL CREATE スクリプトをエクスポートします。しかし、このスクリプトを実行してデータベースを作成すると、エラー - errno: 121 が表示されます。
両方の制約が同じキーを使用するため、MySQL Workbench は 2 つの制約に同じ名前を付けていることがわかります (主キー「roleID」を持つテーブルがあり、他の 2 つのテーブルでこのキーを参照しています)。
デザイナーで制約の名前を直接変更する方法はありますか? SQL CREATE スクリプトをフォワード エンジニアリングすると、エラーは発生しませんか?
デザイナーでリレーションをダブルクリックして新しいキャプションを付けようとしましたが、それでも元の名前でスクリプトが生成されます。
エラーを作成する生成されたスクリプトの一部:
CREATE TABLE IF NOT EXISTS users
.roles
(
roleID
INT NOT NULL AUTO_INCREMENT ,
...
PRIMARY KEY (roleID
) ,
...);
CREATE TABLE IF NOT EXISTS users
.userRoles
(
...
roleID
INT NOT NULL ,
...
CONSTRAINT roleID
FOREIGN KEY (roleID
)
REFERENCES users
.roles
(roleID
));
CREATE TABLE IF NOT EXISTS users
.resourcePrivileges
(
roleID
INT NOT NULL ,
...
CONSTRAINT roleID
FOREIGN KEY (roleID
)
REFERENCES users
.roles
(roleID
));