2020年7月28日 星期二

MySQL Stored Procedure Cursor 的標準程式模板

DECLARE v_exit INT DEFAULT FALSE;

DECLARE cur_table CURSOR FOR
SELECT  field1, field2 FROM table;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_exit = TRUE;


OPEN cur_table;

my_fetch: LOOP
FETCH cur_table
INTO v_field1, v_field2;
IF v_exit THEN
LEAVE my_fetch;
END IF;

<process code here...>


END LOOP my_fetch;

CLOSE cur_table;

2020年7月20日 星期一

MySQL VARCHAR最大長度限制(maximum length)

VARCHAR的最大長度為65535 Bytes,而能儲存多少個字必須依字元集(Character Set)決定。 

字元集(Character Set)若設為utf8mb4來儲存中文字,也就是每個UTF-8字元需要佔用4 bytes的空間,則單一個VARCHAR欄位最多可儲存16,383個字。

而MySQL資料表的一個列(row)中的所有欄位的大小加總不能超過row size的限制,MySQL預設row size的大小為65535KB。所以,如果一列中還有其他的 varchar 欄位就必須再扣除掉。


如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。