解決Mysql建表時報錯invalid?ON?UPDATE?clause?for?'create_date'?column
Mysql建表時報錯invalid ON UPDATE clause for 'create_date' column
這個錯誤是由于mysql 版本問題導致的
`create_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', `update_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
這是建表語句。MySQL 5.5 每個表只允許一個列的默認值根據(jù)時間戳生成時間
可以查看一下mysql的版本號:
show variables like 'innodb_version';
MySQL創(chuàng)建表易錯
場景
提示:DDL - 表操作 - 創(chuàng)建:
通過 MySQL 中的SQL語句創(chuàng)建表遇到的各種報錯
問題描述1
一開始是以為輸入分號就可以成功創(chuàng)建,結(jié)果如下所示:
無論輸入多少個按回車都是那樣
mysql> create table tb_user( -> id int comment '編號', '> name varchar(50) comment `姓名`, '> age int comment `年齡`, '> gender varchar(1) comment `性別`, '> ) '> comment `用戶表`; '> ; '> ; '> ; '> ^C
原因分析1
可能此處以括號結(jié)尾,后面的注釋不應該換行:
實際上通過查閱資料才發(fā)現(xiàn)
MySQL 對于 SQL 語句中的換行沒有特別的要求,可以在任何需要的地方進行換行。
SQL 語句的可讀性和美觀性對于維護和調(diào)試都非常重要,因此建議適當?shù)剡M行換行和縮進,以提高代碼的可讀性。
建議在以下情況下進行換行:
- 在關(guān)鍵字前換行,以便更好地組織相關(guān)語句。
- 在 FROM、JOIN、WHERE、GROUP BY、HAVING、ORDER BY 等關(guān)鍵字后面換行。
- 在 SELECT、INSERT、UPDATE、DELETE 等語句中的列或值列表過長時,可以將每個列或值單獨放在一行中,以提高可讀性。
下面是一個使用換行和縮進的示例:
SELECT tb_user.*, tb_order.order_no, tb_order.create_time FROM tb_user JOIN tb_order ON tb_user.id = tb_order.user_id WHERE tb_user.age >= 18 GROUP BY tb_user.id HAVING COUNT(tb_order.id) >= 10 ORDER BY tb_user.create_time DESC;
問題描述2
在當初不知道情的情況下,我把換行的問題解決了,后來還是發(fā)現(xiàn)沒有成功創(chuàng)建
這個語句一旦寫錯就得Ctrl + C重新來,目前沒有找到重新編輯上一行語句的方法。
mysql> create table tb_user( -> id int comment '編號`, '> name varchar(50) comment `姓名`, '> age int comment `年齡`, '> gender varchar(1) comment `性別`, '> ) comment `用戶表`; '> ^C
原因分析2
可能是中英文的問題,以及符號運用的問題
這是大多數(shù)初學者容易忽略的地方,通常中英文切換后很難記得這回事
還有就是字符串只能用單引號或者雙引號,這里用反引號習慣了就出問題了
最后一行字段沒有逗號!
解決方案
- 把所有中文符號改過來
- 把所有的字符串用的反引號換成單引號
- 最后一行的逗號去掉
改完之后的代碼:
mysql> create table tb_user( -> id int comment '編號', -> name varchar(50) comment '姓名', -> age int comment '年齡', -> gender varchar(1) comment '性別' -> ) comment '用戶表'; Query OK, 0 rows affected (0.02 sec)
此時終于創(chuàng)建成功了!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL刪除外鍵、增加外鍵以及刪除主鍵、增加主鍵的實戰(zhàn)步驟
在Mysql中使用外鍵,可以有效地將多個表格的數(shù)據(jù)"聯(lián)動"起來,打破獨立狀態(tài),互相影響,下面這篇文章主要給大家介紹了關(guān)于MySQL刪除外鍵、增加外鍵以及刪除主鍵、增加主鍵的相關(guān)資料,需要的朋友可以參考下2022-08-08MySQL中g(shù)roup_concat函數(shù)深入理解
本文通過實例介紹了MySQL中的group_concat函數(shù)的使用方法,需要的朋友可以適當參考下2012-11-11MySQL分組查詢獲取每組最新的一條數(shù)據(jù)詳解(group?by)
在寫報表功能時遇到一個需要根據(jù)用戶id分組查詢最新一條錢包明細數(shù)據(jù)的需求,下面這篇文章主要給大家介紹了關(guān)于MySQL分組查詢獲取每組最新的一條數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2024-08-08Mysql刪除重復的數(shù)據(jù) Mysql數(shù)據(jù)去重復
這篇文章主要介紹了Mysql刪除重復的數(shù)據(jù) Mysql數(shù)據(jù)去重復,需要的朋友可以參考下2016-08-08