如何创建 table 以便在插入记录时将复合键值插入另一列?
How to create a table such that when ever a record is inserted, composite key values gets inserted in another column?
在创建 table 时,我可以找到许多方法来创建唯一的复合键。但是我无法弄清楚如何在插入记录时自动创建包含复合键值的列。
例如
如果我
insert ('pine','apple') into Fruits
我希望 table 成为
name1 name2 fullname
------------------------
pine apple pine apple
我的创建语句。
create table ( column_names,
primary key(name1,name2));
我必须对创建语句进行哪些更改才能实现此目的?提前致谢。
使用生成的列:
CREATE TABLE mytable ( name1 VARCHAR(127) NOT NULL,
name2 VARCHAR(127) NOT NULL,
fullname VARCHAR(255) AS (CONCAT(name1, ' ', name2)) STORED,
PRIMARY KEY(fullname) );
-- or
CREATE TABLE mytable ( name1 VARCHAR(127) NOT NULL,
name2 VARCHAR(127) NOT NULL,
fullname VARCHAR(255) AS (CONCAT(name1, ' ', name2)) VIRTUAL,
PRIMARY KEY(name1, name2) );
记住 - 您不能显式地将值设置为生成的列(在 INSERT 或 UPDATE 中)。从列列表中跳过它或使用 DEFAULT
关键字作为其值。
在创建 table 时,我可以找到许多方法来创建唯一的复合键。但是我无法弄清楚如何在插入记录时自动创建包含复合键值的列。
例如
如果我
insert ('pine','apple') into Fruits
我希望 table 成为
name1 name2 fullname
------------------------
pine apple pine apple
我的创建语句。
create table ( column_names,
primary key(name1,name2));
我必须对创建语句进行哪些更改才能实现此目的?提前致谢。
使用生成的列:
CREATE TABLE mytable ( name1 VARCHAR(127) NOT NULL,
name2 VARCHAR(127) NOT NULL,
fullname VARCHAR(255) AS (CONCAT(name1, ' ', name2)) STORED,
PRIMARY KEY(fullname) );
-- or
CREATE TABLE mytable ( name1 VARCHAR(127) NOT NULL,
name2 VARCHAR(127) NOT NULL,
fullname VARCHAR(255) AS (CONCAT(name1, ' ', name2)) VIRTUAL,
PRIMARY KEY(name1, name2) );
记住 - 您不能显式地将值设置为生成的列(在 INSERT 或 UPDATE 中)。从列列表中跳过它或使用 DEFAULT
关键字作为其值。