第一张table
$sql = "CREATE TABLE if not exists mainInfo (
sku varchar(20) primary key not null,
name varchar(20) not null,
price int(30) not null,
type int(2) not null
)";
第二张table
$sql="CREATE TABLE if NOT EXISTS properties (
size int(9),
bWeight int(9),
fHeight int(9),
fWeight int(9),
fLenght int(9),
sku varchar(20) not null,
CONSTRAINT FK_mainInfoProperties FOREIGN KEY (sku) REFERENCES mainInfo(sku)
)";
内部联接表
$sql = "CREATE TABLE if NOT EXISTS allInfo (
sku varchar(20) primary key not null,
name varchar(20) not null,
price int(30) not null,
type int(2) not null,
size int(9),
bWeight int(9),
fHeight int(9),
fWeight int(9),
fLenght int(9)
)";
$sql = "INSERT INTO allInfo (sku, name, price, type, size, bWeight,
fHeight, fWeight, fLenght)
SELECT mainInfo.sku, name, price, type, size, bWeight, fHeight,
fWeight, fLenght
FROM mainInfo INNER JOIN properties
ON mainInfo.sku = properties.sku";
我第一次使用这段代码时,它是工作的,但是当我向第一个和第二个表中添加新行时,内部联接表不会更新它,给我键'primary'的重复条目。我如何更新这个表,添加新行,但保留已经存在的行不变?
2条答案
按热度按时间qyswt5oh1#
我想你不需要第三张table。使用简单的连接可以很容易地获得唯一的记录。
我建议两个人只用两张table,不要用第二张
w1e3prcc2#
将allinfo中的suk字段标记为外键,并添加新的主键(如allinfo)以唯一地标识记录