2012-06-01 83 views
0

我是新來的mysql,並有隨附的代碼來生成數據庫&表。前兩個表生成的很好,但我得到了上述錯誤(在主題行中)。你能幫忙嗎?MYSQL - #1005 - 無法創建表'dbwms.t_trucks'(errno:150)

CREATE DATABASE IF NOT EXISTS dbwms DEFAULT CHARACTER SET `utf8`; 

USE dbwms; 

CREATE TABLE IF NOT EXISTS t_truck_types (
f_pk_ma_truck_type SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
f_sa_truck_type CHAR(4) NOT NULL UNIQUE, INDEX(f_sa_truck_type), 
f_truck_length TINYINT 
) ENGINE=InnoDB DEFAULT CHARACTER SET `utf8`; 

CREATE TABLE IF NOT EXISTS t_truck_vendors (
f_pk_ma_truck_vendor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
f_sa_truck_vendor_id SMALLINT UNSIGNED NOT NULL UNIQUE, INDEX(f_sa_truck_vendor_id),  
f_truck_vendor_nickname VARCHAR(12) NOT NULL UNIQUE, INDEX(f_truck_vendor_nickname) 
) ENGINE=InnoDB DEFAULT CHARACTER SET `utf8`; 

CREATE TABLE IF NOT EXISTS t_trucks (
f_pk_ma_truck_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
f_truck_license_plate VARCHAR(15) NOT NULL UNIQUE, INDEX(f_truck_license_plate), 
f_fk_ma_truck_type SMALLINT UNSIGNED NOT NULL, 
f_fk_ma_truck_vendor_id SMALLINT UNSIGNED NOT NULL, 
FOREIGN KEY (f_fk_ma_truck_type) REFERENCES t_truck_types(f_pk_ma_truck_type), 
FOREIGN KEY (f_fk_ma_truck_vendor_id) REFERENCES t_truck_vendors(f_pk_ma_truck_vendor_id) 
) ENGINE=InnoDB DEFAULT CHARACTER SET `utf8`; 

在此先感謝您的幫助。

sbeeht

+0

請看一看這個http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign -key-constraints.html,主要是外鍵問題 – maxjackie

回答

1

這是因爲在f_fk_ma_truck_type定義t_trucksUNSIGNED。主鍵和外鍵都應該是相同的類型。您可以在t_trucks

CREATE TABLE IF NOT EXISTS t_trucks (
f_pk_ma_truck_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
f_truck_license_plate VARCHAR(15) NOT NULL UNIQUE, INDEX(f_truck_license_plate), 
f_fk_ma_truck_type SMALLINT NOT NULL, 
f_fk_ma_truck_vendor_id SMALLINT UNSIGNED NOT NULL, 
FOREIGN KEY (f_fk_ma_truck_type) REFERENCES t_truck_types(f_pk_ma_truck_type), 
FOREIGN KEY (f_fk_ma_truck_vendor_id) REFERENCES t_truck_vendors(f_pk_ma_truck_vendor_id) 
) ENGINE=InnoDB DEFAULT CHARACTER SET `utf8`; 

去除unsigned或增加其在t_truck_types聲明

+0

感謝您的答覆。非常有幫助。 – user1429896

相關問題