[英]Add an autoincrement primary key to a table created with a SELECT statement
這是一個語法問題,我不知道自己在想什么。 我找不到任何東西。
CREATE TABLE IF NOT EXISTS newTable
SELECT something1, something2, something3 FROM someTable;
使用此語法創建新表,是否可以為此添加主鍵? 像這樣:
CREATE TABLE IF NOT EXISTS newTable
SELECT id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, something1, something2, something3 FROM someTable;
我有一個大型而復雜的動態查詢,可以向我返回所需的准確結果。 剩下的就是為這些結果添加一個自動遞增的主鍵! 因為查詢是動態的,所以我不知道要獲得的列數,所以我不能只是:
DROP TABLE IF EXISTS newTable;
CREATE TABLE newTable(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
something1 VARCHAR(255),
something2 VARCHAR(255),
something3 VARCHAR(255)
) ENGINE=MEMORY;
在此先感謝您提供任何建議!
看來您將必須運行多個步驟才能執行此操作:
為此,您使用信息模式。 如下所示(虛擬代碼,沒有方便調試的mysql):
CREATE PROCEDURE create_table(table_name VARCHAR(200))
BEGIN
declare cursor table_columns as SELECT COLUMN_NAME, DATA_TYPE,
IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'
LOOP
concatenate create table statement
END LOOP;
execute create table statement
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.