mysql開發中遇到的問題解決

2021-10-10 06:55:41 字數 1911 閱讀 5751

剛接觸mysq,在開發過程中遇到的問題記錄,避免採坑

-- mysql 對空格不敏感且認為''空字串與null不同(處理的時候,先將null轉為'',然後再用if函式,將空字串''轉為' '空格)

select

if(ifnull(product_id,'')

='',' '

,product_id)

from audit_action;

// 查詢 

select @@global.group_concat_max_len

;set

global group_concat_max_len=

102400

;//會話級

setsession group_concat_max_len =

102400

;

-- cast() 函式``

`select cast(concat(

'delete from tmp1 where scope_id in ( \''

,scope_id,

'\');')as

char

)from tmp1 where is_sync=

2union

allselect cast(concat(

'delete from tmp2 where scope_id in ( \''

,scope_id,

'\');')as

char

)from tmp2 where is_sync=

2;

語法:select 「member_id」,「model_id」 from 「model」@beehub

可能遇到問題:

無法通過dblink 實現雙端資料同步:

1.long型別問題,oracle的bug

通過oracle閘道器查詢mysql的表,mysql表有多個text,varchar(1024)之類的大文字字段,oracle都會轉化為long型別,

此時只能乙個字段乙個字段查詢,否則會出現ora-00600: 內部錯誤**, 引數: [ho define: long fetch], , , , , , , , , , , 的錯誤;

oracle官方說:

第三方工具(如pl/sql developer或toad for oracle -)進行選擇使用oracle資料庫閘道器(如dg4odbc, dg4msql),會收到該錯誤訊息

在使用oracle軟體時也會發生這個問題。閘道器版本從11.1到12.1都可能發生這種情況。

2.亂碼問題,通過oracle閘道器查詢mysql的表,時間型別欄位會亂碼

3.null和空值』『問題

mysql中欄位not null可以存入空值』』, 空值(』』)的長度是0,是不占用空間的;而的null長度是null,其實它是占用空間的。

而oracle中認為null和『』(空字串)是乙個意思,『』 (空串)預設被轉換成了 null

就會出現ora-01400: 無法將 null 插入 (%s)的報錯資訊

4.許可權問題

出現以下報錯

error: ora-04052: 在查詢遠端物件 root.audit_action@beehub 時出錯

ora-00604: 遞迴 sql 級別 1 出現錯誤

ora-28500: 連線 oracle 到非 oracle 系統時返回此資訊:

[mysql][odbc 8.0(w) driver][mysqld-8.0.20]unknown database 『root』 {hy000,nat

—未完待續

MySql遇到亂碼問題解決。

情況 使用myeclipse db browser 執行乙個sql檔案,結果頁面亂碼。解決方法,設定1 db browser的connection url設定為 jdbc mysql 2 mysql根目錄下的my.ini檔案 default character set設定為default chara...

MBProgressHUD遇到的問題解決

因為某些原因呼叫mbprogresshud的時候沒注意不在主線成,導致程式總崩潰在mbprogresshud的這一句 nsassert nsthread ismainthread mbprogresshud needs to be accessed on the main thread.nsthre...

nginx遇到的問題解決

1.解決nginx日誌記錄400錯誤並關閉預設主機訪問 在nginx.conf裡加入以下 server 2.nginx目錄訪問末尾自動架斜線 預設配置當你訪問 時不會加 常見做法,在server加入以下 if d request filename 更佳的替代方法 optimize server na...