您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)mysql中如何利用修改sql_mode=NO_TABLE_OPTIONS收集建表語句并去掉engine和charset關(guān)鍵字,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、描述
平時我們有需求是要根據(jù)已有的表來生成建立表語句,直接查看生成過程中會有ENGINE和CHARSET兩個關(guān)鍵字,其實我們大多數(shù)時候是不需要該參數(shù),如果導(dǎo)出后手工修改腳本,實在是在麻煩了。在這里我們可以使用sql_mode參數(shù),修改為NO_TABLE_OPTIONS來進行收集。當(dāng)然我們注意點是要修改當(dāng)前session的變量,而不是全局變量。下面是個小小的實驗,演示一下這個過程。
二、實驗
1.查看sql_mode變量當(dāng)然值
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兩個參數(shù)
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兩個參數(shù)
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參數(shù)恢復(fù)默認(rèn)值
關(guān)于“mysql中如何利用修改sql_mode=NO_TABLE_OPTIONS收集建表語句并去掉engine和charset關(guān)鍵字”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。