[英]mysql Alter table to add column with selected
我正在嘗試使用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)
);
您可以使用prepared
statement
:
SELECT id into @unassignedID FROM authors WHERE emailAddress = 'UNASSIGNED' limit 1;
SET @sql = CONCAT('ALTER TABLE Tests ADD COLUMN authorID INT NOT NULL DEFAULT ',@unassignedID);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.