用于在同一查询中创建和更新列的SQL查询

时间:2012-05-16 13:06:23

标签: sql mysqli

对于我的作业,我被要求编写一个SQL语句来执行以下操作。

registration表格中添加一个新列(module_name char (15)),然后更新与module_id的每个200对应的列。 module namedigital diary201year planner202b’day remainder

我可以使用两个或更多语句来执行此操作,但有没有办法可以在单个sql语句中完成此操作?

3 个答案:

答案 0 :(得分:1)

是的,可以使用DEFAULT:

CREATE TABLE registration(module_id INT);
INSERT INTO registration(module_id) VALUES (100),(200),(201),(202);

更改:

ALTER TABLE registration
ADD COLUMN module_name char(15)
    DEFAULT (CASE module_id WHEN 200 THEN 'digital diary'
                            WHEN 201 THEN 'year planner'
                            WHEN 202 THEN 'b’day remainder'
            END);

db<>fiddle demo

答案 1 :(得分:0)

您无法在一个批处理中执行此操作,您可以使用EXEC命令来运行sql语句,这样您就可以在两个不同的批处理和一个查询中执行此操作:

EXEC('statement1')

EXEC('statement2')

答案 2 :(得分:-1)

使用存储过程,并在那里写下您需要的任何语句。