您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關mysql中如何利用修改sql_mode=NO_TABLE_OPTIONS收集建表語句并去掉engine和charset關鍵字,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、描述
平時我們有需求是要根據已有的表來生成建立表語句,直接查看生成過程中會有ENGINE和CHARSET兩個關鍵字,其實我們大多數時候是不需要該參數,如果導出后手工修改腳本,實在是在麻煩了。在這里我們可以使用sql_mode參數,修改為NO_TABLE_OPTIONS來進行收集。當然我們注意點是要修改當前session的變量,而不是全局變量。下面是個小小的實驗,演示一下這個過程。
二、實驗
1.查看sql_mode變量當然值
mysql> show variables like 'sql_mode';
+---------------+--------------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------------+
| sql_mode | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.01 sec)
2.查看t1表的建立語句,帶有ENGINE與CHARSET兩個參數
mysql> show create table t1;
+-------+----------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------------------------------------+
| t1 | CREATE TABLE `t1` (
`id` int(11) DEFAULT NULL,
`name` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
3.修改sql_mode為NO_TABLE_OPTIONS
mysql> set session sql_mode='NO_TABLE_OPTIONS';
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%sql_mode%';
+---------------+------------------+
| Variable_name | Value |
+---------------+------------------+
| sql_mode | NO_TABLE_OPTIONS |
+---------------+------------------+
1 row in set (0.00 sec)
4.再次查看建t1表SQL語句,沒有ENGINE和CHARSET兩個參數
mysql> show create table t1;
+-------+-----------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------+
| t1 | CREATE TABLE `t1` (
`id` int(11) DEFAULT NULL,
`name` char(20) DEFAULT NULL
) |
+-------+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)
5.退出會話,使sql_mode參數恢復默認值
關于“mysql中如何利用修改sql_mode=NO_TABLE_OPTIONS收集建表語句并去掉engine和charset關鍵字”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。