Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从mysql中的另一个表创建用户名_Mysql - Fatal编程技术网

从mysql中的另一个表创建用户名

从mysql中的另一个表创建用户名,mysql,Mysql,我试图从一个表中创建一个用户名,并将其插入到一个新表中,我有一个名为person的表,它有列: 名、姓、地址、电话、电子邮件、可用性id、技能、通信、志愿者id、用户名 基本上,我希望将名字和姓氏合并到用户名中,并将该用户名插入到新表中 我创建了如下表: CREATE TABLE user4 AS SELECT * FROM person; ALTER TABLE user4 ADD username VARCHAR (30) NOT NULL; 所有这些都起作用了,然后我尝试使用以下内容创建

我试图从一个表中创建一个用户名,并将其插入到一个新表中,我有一个名为person的表,它有列:

名、姓、地址、电话、电子邮件、可用性id、技能、通信、志愿者id、用户名

基本上,我希望将名字和姓氏合并到用户名中,并将该用户名插入到新表中

我创建了如下表:

CREATE TABLE user4 AS
SELECT * FROM person;
ALTER TABLE user4 ADD username VARCHAR (30) NOT NULL;
所有这些都起作用了,然后我尝试使用以下内容创建用户名:

INSERT INTO user4(username) SELECT SUBSTRING(name, 1, 4)FROM person;

我想不出我遗漏了什么,有什么帮助吗?

您似乎想要的是更新查询,而不是插入:

update user4 set username = concat(first_name, ' ', last_name);
或者,您也可以在创建新表时动态计算新列:

create table user4 AS Select p.*, concat(first_name, ' ', last_name) username from person p

您应该在最后一条语句中使用UPDATE not SELECT。请尝试使用
VARCHAR(255)
作为默认值,并且仅当您有非常令人信服的理由时才限制它。对于许多事情,如姓名和电子邮件地址,较短的字段可能会给您的用户带来巨大的麻烦。我知道,但我被要求使用insert-into来实现这一点您的解决方案是可行的,但我被要求使用insert-into