[英]Create Table in SQL where table name is from digits
當我嘗試做下一個
mysql> CREATE TABLE '20181020';
sql 返回錯誤:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
that corresponds to your MariaDB server version for the right syntax to use
near ''20181020'' at line 1
我該如何解決?
您不需要用反引號包裝標識符:
CREATE TABLE `20181020`(id INT);
我建議不要這樣做並使用適當的有意義的命名。 使用日期作為表名表明它可能是表-每個日期的反模式。
您也可以對這種類型的表名使用雙引號
CREATE TABLE "20181020" (id INT);
insert into "20181020" values(1)
但這種命名不是標准做法
其他答案涵蓋了解決方案,即使用反引號。
讓我補充一點,使用非標准標識符是一個壞主意。 如果您也開始將列命名為數字,那么誰想弄清楚20181020.1
和20181020
之間的差異。 1
和20181020.1
。 使用前綴有那么難嗎: t_20181020
?
但你也不想這樣做。 讓我解釋。 據推測,如果您有一張名為20181020
表,那么明天您將需要另一張表20181021
。 這是一個非常糟糕的數據庫設計。
您應該將所有數據放入一個表中,並用date
列指定日期。 然后,您可以對一張表運行查詢以查看隨時間的變化——例如。
如果表很大並且您希望能夠分別處理每一天,那么您可以使用表分區來分別存儲每一天的值。 這很方便,因為分區可以獨立於其他分區進行歸檔、恢復和刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.