PDMan建表時的問題

2022-10-09 22:24:20 字數 1177 閱讀 8957

pdman每次建表到資料庫上都是乙個痛苦的過程,因為不知道為什麼就會建不出來,可能過一會又建出來了...一般的解決方法就是直接把軟體生成的建表語句在資料庫上執行,這次又遇到了這個問題,不過因為這次的pdman.json檔案是要上交的,所以不能糊弄過去了,只能開始痛苦的找bug之路...

1.首先看同步時的sql語句

然後一同步就報錯

2.找問題

搞不清楚為什麼,於是開始用以前成功建表的版本來進行比較

(1)成功版本1

版本語句後面有/*sql@run*/,不知道是幹啥的,查了一下,啥都沒查到,但是看到了關於sql的語法:

某些資料庫系統要求在每條 sql 語句的末端使用分號。

分號是在資料庫系統中分隔每條 sql 語句的標準方法,這樣就可以在對伺服器的相同請求中執行一條以上的 sql 語句。

成功版本1:

(2)成功版本2

成功版本2和當前版本一樣,語句後面也沒有/*sql@run*/,但是,它的說明欄位中都沒有用到分號,也就可以成功建表

成功版本2:

3.初步結論

看來是分號的問題了

(1)在說明中使用分號,pdman可能會生成/*sql@run*/語句來幫助解除分號的影響

(2)在說明中避免使用分號,基本就不會出現問題了,就不用依賴於pdman時有時無的/*sql@run*/了

最後把說明**現的所有分號刪除,終於成功了...

建表時pctfree和pctused的設定

對於資料塊的認識 資料塊的大小有db block size決定,並且只有通過重建資料庫來得到調整。空間計算的根據來自於資料塊。資料塊由資料塊頭,資料區組成。資料區的使用由pctfree,pctused控制。當insert發生時,pctfree決定了該塊所能容納的最多的資料,即,剩餘空間佔資料塊實際空...

使用hive建庫建表時提示如下錯誤的解決辦法

錯誤如下 解決辦法 登入linux上的mysql 安裝在哪一台就在哪一台上啟動 mysql uroot p 接著mysql drop database hive query ok,1 row affected 0.13 sec mysql create database hive query ok,...

建庫和建表中編碼問題

utf8 genera ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。utf8 bin將字串中的每乙個字元用二進位制資料儲存,區分大小寫。例如 select from table where txt a 那麼在utf8 bin中你就找不到 txt a 的那一行,而 ...