繁体   English   中英

在表中插入新数据

[英]Inserting new data in a table

我创建了一个用于学习目的的基本表。

CREATE TABLE friends (
  id INT,
  name TEXT,
  birthday DATE
);

添加了一些数据...

INSERT INTO friends (id,name,birthday)
VALUES (1,'Jo Monro','1948-05-30');

INSERT INTO friends (id,name,birthday)
VALUES (2, 'Lara Johnson','1970-03-03');

INSERT INTO friends (id,name,birthday)
VALUES (3,'Bob Parker', '1962-09-3');

我意识到我忘了包含 email 列。 我添加了专栏...

ALTER TABLE friends
ADD COLUMN email;

..但是我现在如何才能将数据添加到这个新列?

我尝试过 WHERE 语句,用和不用其他列名重写 INSERT INTO 语句,但没有任何效果?

我在这里想念什么?

谢谢!

将电子邮件插入临时表,然后用它更新真实表。

 CREATE TABLE friends ( id INT auto_increment primary key, name VARCHAR(100), birthday DATE ); INSERT INTO friends (name, birthday) VALUES ('Jo Monro','1948-05-30'), ('Lara Johnson','1970-03-03'), ('Bob Parker', '1962-09-3'); ALTER TABLE friends ADD COLUMN email VARCHAR(100); select * from friends
 编号 | 姓名 | 生日 |  email -: |:----------- |:--------- |:---- 1 | 乔梦露 |  1948-05-30 |  null 2 | 劳拉·约翰逊 |  1970-03-03 |  null 3 | 鲍勃·帕克 |  1962-09-03 |  null
 -- -- temporary table for the emails -- CREATE TEMPORARY TABLE tmpEmails ( name varchar(100) primary key, email varchar(100) );
 -- -- fill the temp -- insert into tmpEmails (name, email) values ('Jo Monro','jo.monro@unmail.net'), ('Lara Johnson','lara.johnson@unmail.net'), ('Bob Parker', 'UltimateLordOfDarkness@chuni.byo');
 -- -- update the real table -- update friends friend join tmpEmails tmp on friend.name = tmp.name set friend.email = tmp.email where friend.email is null;
 select * from friends
 编号 | 姓名 | 生日 |  email -: |:----------- |:--------- |:--------- ---------- 1 | 乔梦露 |  1948-05-30 |  jo.monro@unmail.net 2 | 劳拉·约翰逊 |  1970-03-03 |  lara.johnson@unmail.net 3 | 鲍勃·帕克 |  1962-09-03 |  UltimateLordOfDarkness@chuni.byo

db<> 在这里摆弄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM