当您使用INSERT INTO SELECT MySQL查询时,可以添加静态值。将值直接写在select语句中,或者可以在变量的帮助下添加以初始化值。
情况1-将值直接放在INSERT INTO SELECT语句中。语法如下-
INSERT INTO yourSecondTableName(yourColumnName1,yourColumnName2,....N) SELECT yourColumnName1 ,yourColumnName2,.....N,yourStaticValue from yourFirstTableName;
情况2-使用变量添加。语法如下-
SET @yourVariableName − = yourstaticValue; INSERT INTO yourSecondTableName(yourColumnName1,yourColumnName2,....N) SELECT yourColumnName1 ,yourColumnName2,.....N,@yourVariableName from yourFirstTableName;
要了解上述语法,您需要创建两个表。第一个表将在表中包含一些记录,而第二个表将使用insert into select语句插入第一个表记录,并添加一个静态值。
让我们创建第一个表。创建表的查询如下-
mysql> create table First_table -> ( -> Id int NOT NULL AUTO_INCREMENT, -> FirstValue int, -> SecondValue int, -> PRIMARY KEY(Id) -> );
现在,您可以使用insert命令在表中插入一些记录。查询如下-
mysql> insert into First_table(FirstValue,SecondValue) values(10,14); mysql> insert into First_table(FirstValue,SecondValue) values(12,13); mysql> insert into First_table(FirstValue,SecondValue) values(100,110); mysql> insert into First_table(FirstValue,SecondValue) values(45,55);
使用select语句显示表中的所有记录。查询如下-
mysql> select *from First_table;
以下是输出-
+----+------------+-------------+ | Id | FirstValue | SecondValue | +----+------------+-------------+ | 1 | 10 | 14 | | 2 | 12 | 13 | | 3 | 100 | 110 | | 4 | 45 | 55 | +----+------------+-------------+ 4 rows in set (0.00 sec)
让我们创建第二个表。创建表的查询如下-
mysql> create table Second_table -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Value1 int, -> Value2 int, -> Value3 int, -> PRIMARY KEY(Id) -> );
上表中有三列,其中两列将从第一张表中获取值,而第三列将直接或间接地获取值。
查询INSERT INTO SELECT语句如下-
情况1-将静态值添加到第三列。查询如下-
mysql> insert into Second_table(Value1,Value2,Value3) -> select FirstValue,SecondValue,45 from First_table; Records − 4 Duplicates − 0 Warnings − 0
在这里,我在第三栏中添加了45。现在,使用select语句检查表中的所有记录。查询如下-
mysql> select *from Second_table;
以下是输出-
+----+--------+--------+--------+ | Id | Value1 | Value2 | Value3 | +----+--------+--------+--------+ | 1 | 10 | 14 | 45 | | 2 | 12 | 13 | 45 | | 3 | 100 | 110 | 45 | | 4 | 45 | 55 | 45 | +----+--------+--------+--------+ 4 rows in set (0.00 sec)
情况2-使用变量时。查询如下-
mysql> set @staticValue − = 20; mysql> insert into Second_table(Value1,Value2,Value3) -> select FirstValue,SecondValue,@staticValue from First_table; Records − 4 Duplicates − 0 Warnings − 0
为我的第三列添加值20。让我们使用select语句再次检查表的记录。查询如下-
mysql> select *from Second_table;
以下是输出-
+----+--------+--------+--------+ | Id | Value1 | Value2 | Value3 | +----+--------+--------+--------+ | 1 | 10 | 14 | 20 | | 2 | 12 | 13 | 20 | | 3 | 100 | 110 | 20 | | 4 | 45 | 55 | 20 | +----+--------+--------+--------+ 4 rows in set (0.00 sec)