linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.
1:問題故障描述
因為在linux下開發(fā),所以修改mysql字段的時,用的phpmyadmin來直接修改生成修改后的sql,然后復(fù)制進(jìn)word(libreoffice)后提交到項目管理系統(tǒng),
同事發(fā)到項目管理系統(tǒng)后不能運行.于是有了這篇文章.
2:首先新建表
CREATE TABLE IF NOT EXISTS `nns_ad_log_count` (
`nns_id` char(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '廣告ID',
`nns_access_type` tinyint(4) NOT NULL COMMENT '0:5m 1:1h 2:24h=1d',
`nns_access_day` date NOT NULL COMMENT '哪一天的',
`nns_access_index` int(11) NOT NULL COMMENT '間隔數(shù),5m 1h 1d=24h',
`nns_access_count` int(11) NOT NULL
) ENGINE=InnoDb DEFAULT CHARSET=utf8;
這步是OK的.
接著因為項目擴展,增加了1個字段,同時需要修改一個表的字段名和另外幾個表的default 默認(rèn)值和類型
ALTER?TABLE?`nns_ad_log_count`?CHANGE?`nns_id`?`nns_ad_id`?CHAR(?32?)?CHARACTER?SET?utf8?COLLATE?utf8_unicode_ci?NOT?NULL?COMMENT?'廣告ID';
上面這步,是用的phpmyadmin添加的字段后生成的一句sql, 看上去是沒問題的,復(fù)制到word里面,再拿到mysql里面執(zhí)行一下
報錯了.百思不得其解,
為什么會這樣子呢?
3: 錯誤分析.
生成的sql,是干凈的, 途中同事只粘貼進(jìn)了word.
于是手寫了一遍這個sql,并且在mysql里面運行 (為了測試,我復(fù)制了上面的表結(jié)構(gòu),并且新建了一個測試的表`nns_ad_log_count1`)
運行正常
同事只復(fù)制了一次,粘貼到了word (libreoffice)
我重復(fù)一下他的動作
"1. 先用瀏覽器打開phpmyadmin,在phpmyadmin里面直接修改一次,產(chǎn)生sql語句"
"2. 在phpmyadmin 里面,復(fù)制生成的sql到系統(tǒng)的剪貼板緩存"
"3. 粘貼進(jìn)word"
"4. 重復(fù)其他的修改操作,重復(fù)1,2,3步"
"5. 把整個word發(fā)送給我"
"6. 我把word里面的sql拷貝出來,運行 "
"7. 報錯"
打開word,發(fā)現(xiàn)sql的語句的空格在word里面高亮了
但是在mysql里面直接執(zhí)行并沒能看見這個東西,在phpmyadmin里面執(zhí)行上面的sql
空格顯示出來了,原來是這個?
自此問題已經(jīng)明了.sql語句在復(fù)制到word后給污染了. 但是為什么會這樣子污染呢? 發(fā)現(xiàn)只有word粘貼進(jìn)去后,會把utf8下的空格換成?
這個應(yīng)該是linux下的office工具的問題, 這里就不再陳述了
4: 后記, 在linux下做開發(fā)提交的sql語句,
建議復(fù)制到vim里面查看詳細(xì)的格式,
或者更簡單的,復(fù)制出來后,在瀏覽器地址欄粘貼一次再復(fù)制進(jìn)word來提交文檔.以免sql變臟出錯.
總結(jié)
以上是生活随笔為你收集整理的linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 代码模板在哪里_C++的可变参数模板
- 下一篇: 大数据平台常用组件_这款大数据智能服务平
