I am new to mysql and have the enclosed code to generate the database & tables. The first 2 tables are generated fine, but I get the above error (in subject line). Can you please help.
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`;
Thanks in advance for your help.
sbeeht
That's because
f_fk_ma_truck_type
int_trucks
defined as anUNSIGNED
. Both primary key and the foreign key should be of the same type. You may removedunsigned
int_trucks
or add it in the
t_truck_types
declaration