mariadb에서 "Subsystem"테이블을 만들 때 오류가 계속 발생합니다. 나는 mysql을 성공적으로 실행할 수 있었지만 mariadb로 시도 할 때 나는 외래 키와 관련하여 문법과 관련이 있거나없는 것으로 추측된다. - SHOW 엔진 INNODB 상태와를 얻을 수ERROR 1005 (HY000) : 'CBDB.Subsystem'테이블을 만들 수 없습니다. (errno : 150)
ERROR 1005 (HY000): Can't create table 'CBDB.Subsystem' (errno: 150)
내가 도망 : 여기 내가 먼저 부모 테이블을 만들려고 먼저 만드는거야 테이블 ...
-- Creating Tables
DROP TABLE IF EXISTS Storage_Type;
CREATE TABLE Storage_Type (
stor_model VARCHAR(10) NOT NULL,
stor_class VARCHAR(12) NOT NULL,
stor_name VARCHAR(15) NOT NULL,
CONSTRAINT pk_stor_model PRIMARY KEY (stor_model)
);
DROP TABLE IF EXISTS Service_Level;
CREATE TABLE Service_Level (
serv_level CHAR(2) NOT NULL,
serv_name VARCHAR(30),
serv_maxiops VARCHAR(7),
CONSTRAINT pk_serv_level PRIMARY KEY (serv_level)
);
DROP TABLE IF EXISTS Site;
CREATE TABLE Site (
site_num VARCHAR(10) NOT NULL,
site_name VARCHAR(15) NOT NULL,
site_address VARCHAR(30) NOT NULL,
site_suburb VARCHAR(20) NOT NULL,
site_city VARCHAR(15) NOT NULL,
site_pcode CHAR(4) NOT NULL,
CONSTRAINT pk_site_num PRIMARY KEY (site_num)
);
---No sure what i'm doing wrong on this table??
DROP TABLE IF EXISTS Customer;
CREATE TABLE Customer (
site_num VARCHAR(10) NOT NULL,
cust_name VARCHAR(20) NOT NULL,
site_description VARCHAR(50) NOT NULL,
CONSTRAINT pk_site_num PRIMARY KEY (site_num),
CONSTRAINT fk_site_num FOREIGN KEY (site_num) REFERENCES Site(site_num)
);
DROP TABLE IF EXISTS Pools;
CREATE TABLE Pools (
sub_serial MEDIUMINT NOT NULL,
pool_id CHAR(3) NOT NULL,
data_date DATE NOT NULL,
pool_name VARCHAR(30),
pool_type CHAR(4),
pool_totalcapacity INT NOT NULL,
pool_usedcapacity INT NOT NULL,
pool_usedpercent INT,
pool_availablecapacity INT NOT NULL,
pool_subscribedcapacity INT,
pool_subscriptionpercent INT,
serv_level CHAR(2),
CONSTRAINT pk_pool PRIMARY KEY (sub_serial, pool_id, data_date),
CONSTRAINT fk_serv_level FOREIGN KEY (serv_level) REFERENCES Service_Level(serv_level)
);
DROP TABLE IF EXISTS Costs;
CREATE TABLE Costs (
cost_date DATE NOT NULL,
serv_level CHAR(2),
cost_gbmonth VARCHAR(10),
cost_gbday VARCHAR(10),
CONSTRAINT pk_cost PRIMARY KEY (cost_date,serv_level),
CONSTRAINT fk_cost FOREIGN KEY (serv_level) REFERENCES Service_Level(serv_level)
);
--------ISSUES creating this table.....
DROP TABLE IF EXISTS Subsystem;
CREATE TABLE Subsystem (
sub_serial MEDIUMINT NOT NULL,
sub_name VARCHAR(10) NOT NULL,
stor_model VARCHAR(10) NOT NULL,
cust_name VARCHAR(50) UNIQUE,
CONSTRAINT pk_subsys PRIMARY KEY (sub_serial),
CONSTRAINT fk_subsys_stor_model FOREIGN KEY (stor_model) REFERENCES Storage_Type(stor_model),
CONSTRAINT fk_subsys_cust_name FOREIGN KEY (cust_name) REFERENCES Customer(cust_name)
);
오류입니다 다음, 나는 그 문제를 정확하게 지적하는 것.
> ------------------------ LATEST FOREIGN KEY ERROR
> ------------------------ 171124 16:09:31 Error in foreign key constraint of table `CBDB`.`Subsystem`: FOREIGN KEY (cust_name)
> REFERENCES Customer(cust_name)): Cannot find an index in the
> referenced table where the referenced columns appear as the first
> columns, or column types in the table and the referenced table do not
> match for constraint. Note that the internal storage type of ENUM and
> SET changed in tables created with >= InnoDB-4.1.12, and such columns
> in old tables cannot be referenced by such columns in new tables.
내가 잘못 가고있는 곳의 팁이나 아이디어 ??
건배 시간 후