【发布时间】:2017-03-06 11:30:08
【问题描述】:
我正在尝试使用 ALTER 向测试表添加一个新列 (authorID),但我想要一个特定的值(我不知道)。
我正在尝试运行以下命令,但出现 SQL 错误。请问这是可能的吗,如果可以,请问我哪里出错了?
SELECT id FROM authors WHERE emailAddress = 'UNASSIGNED' into @unassignedID;
ALTER TABLE Tests ADD COLUMN authorID INT NOT NULL DEFAULT @unassignedID;
作者表:
CREATE TABLE authors
(
ID INT NOT NULL AUTO_INCREMENT,
emailAddress VARCHAR(100) NOT NULL UNIQUE,
regionID INT NOT NULL,
PRIMARY KEY(ID)
);
测试表:
CREATE TABLE Tests
(
testID INT NOT NULL AUTO_INCREMENT,
Title VARCHAR(100) DEFAULT NULL,
PRIMARY KEY(testID)
);
【问题讨论】:
-
不,它不是那样工作的。在更改表之后,您需要插入或更新(取决于测试表中是否有记录)。如果需要插入,请使用
insert ... select ... instead。您也不能像这样将结果列表检索到会话变量中。
标签: mysql alter-table