通过PHP在一次执行中在SQL中创建两个表customer_data和order_data


CREATE TABLE IF NOT EXISTS customers_data (
id int(20) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
INVOICE_ID varchar(50) NOT NULL, 
_NAME varchar(255) NOT NULL, 
MOBILE bigint(12) NOT NULL, 
GSTIN varchar(20) NOT NULL, 
_ADDRESS varchar(255) NOT NULL, 
EMAIL varchar(255) NOT NULL, 
_STATE varchar(50) NOT NULL, 
MODE varchar(10) NOT NULL, 
_DATE date NOT NULL DEFAULT current_timestamp(), 
total_qty int(11) NOT NULL, 
total_amount decimal(40,2) NOT NULL, 
total_sc_gst decimal(30,2) NOT NULL, 
Round_Off float(2,2) NOT NULL, 
grand_total decimal(50,0) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

成功创建了customer_data

但是关于外键的order_data中存在错误。请记住,我想在同一时间创建这两个表。

CREATE TABLE IF NOT EXISTS order_data (
id int(20) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
cus_id int(20) NOT NULL, 
ITEM varchar(255) NOT NULL, 
HSN varchar(50) NOT NULL, 
QTY int(15) NOT NULL,
RATE decimal(40,2) NOT NULL, 
S_C_GST decimal(30,2) NOT NULL, 
TOTAL decimal(50,2) NOT NULL,
_DATE timestamp NOT NULL DEFAULT current_timestamp(),
FOREIGN KEY(cus_id) REFERENCES customers_data(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我犯了这个错误。

#1005-无法创建表测试。(错误号:150"外国键约束不正确地形成"(

我认为您使用的是MySQL。您尚未将Constraint与外键一起使用。请尝试以下查询。

CREATE TABLE IF NOT EXISTS order_data (
id int(20) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
cus_id int(20) NOT NULL, 
ITEM varchar(255) NOT NULL, 
HSN varchar(50) NOT NULL, 
QTY int(15) NOT NULL,
RATE decimal(40,2) NOT NULL, 
S_C_GST decimal(30,2) NOT NULL, 
TOTAL decimal(50,2) NOT NULL,
_DATE timestamp NOT NULL DEFAULT current_timestamp(),
**CONSTRAINT <FK_NAME>** FOREIGN KEY(cus_id) REFERENCES customers_data(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

制作表格"同时";不是你需要解决的问题(无论如何都不可能(。

如果数据类型与引用列的数据类型不同,则不能生成外键。

order_data.cus_id是INT列。

customers_data.id是INT UNSIGNED列。

更改一种或另一种数据类型,使它们相同。

相关内容

  • 没有找到相关文章

最新更新