簡體   English   中英

僅當數據庫中尚不存在同名表時,如何將表創建為另一個表?

[英]How can I create a table as another table, only if the table by the same name doesn't yet exist in a database?

錯誤:第 4 行的語法錯誤

CREATE TABLE `${tempVars("id")}` AS
SELECT 'UNIXTIME', 'TODO', 'IMPORTANCE' 
FROM `${tempVars("id")}`
IF NOT EXISTS `${tempVars("id")}`;

錯誤:第 1 行的語法錯誤

IF (EXISTS (SELECT *
 FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA = 'todolists'
 AND TABLE_NAME = `${tempVars("id")}`))
BEGIN
 SELECT * FROM `${tempVars("id")}`
END
ELSE
BEGIN
 CREATE TABLE `${tempVars("id")}` AS
   SELECT UNIXTIME, TODO, IMPORTANCE
   FROM `${tempVars("id")}`
END

我已經從現有問題中嘗試了很多東西,但一切似乎都完全出錯了。 完全不知道出了什么問題,並且無法修復,盡管得到了比我更有經驗的人的幫助。

IF NOT EXISTS選項位於CREATE TABLE的開頭,而不是末尾。

CREATE TABLE IF NOT EXISTS new_table
SELECT UNIXTIME, TODO, IMPORTANCE
FROM old_table

另請注意,您不應該在SELECT中的列名周圍加上單引號,這將返回文字字符串,而不是列的內容。 如果您需要引用列名,請使用反引號。 請參閱何時在 MySQL 中使用單引號、雙引號和反引號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM