反人性 SQL 速查

存在則取得 ID,否則插入

-- 假設 `pk` 是 Primary Key,  `column2` 是 Unique Key
INSERT INTO `table` (`column2`)
VALUES ("value2")
ON DUPLICATE KEY UPDATE `pk` = LAST_INSERT_ID(`pk`);
  • 前置條件:插入資料必須包含 Unique Key 或 Primary Key
  • 回傳值:Primary Key (用 last_insert_id 讀取)
  • 由於使用 INSERT 指令,所以每次查詢都會增加 AUTO_INCREMENT 計數,
    想避免頻繁增加,可以先使用 SELECT 檢查一次
  • 呼叫 LAST_INSERT_ID(`pk`) 可以改變用戶端讀取 “最後插入的主鍵” 的值
  • LAST_INSERT_ID(`pk`) 回傳值為傳入值,所以不會變更原有記錄

Related posts

Shell 語法筆記

從多個 pipeline 輸入資料

# 以 diff 示範
diff <(ls dir1) <(ls dir2)

Rust 標準庫 Trait 速查

Rust 的 trait 實在太重要太豐富了...有時想不起來還不容易查...

資料結構特性

std::marker::Sized :用於資料結構泛型 ( S<T> ),表示編譯期可以確定大小!Sized 表示編譯期無法確定大小?Sized 表示編譯期能不能確定大小都無所謂std::marker::Copy :表示可以直接複製記憶體來複製資料結構在資料結構前面加上 # 來自動實現實現此特性就可以用 #[derive(Copy,...

慣用 vim 設定檔

Tab 縮排

set tabstop=4
set shiftwidth=4
" 避免把 tab 變成 space
set noexpandtab

自動縮排

set ai!
set smartindent

自定義界面

" 顯示行號
set nu
" 高亮搜尋結果
set...

MacOS VPN 路由設定

使用 root 權限新增腳本 /etc/ppp/ip-up ,記得 chmod +x:

#!/bin/bash
# 參數說明參考:https://superuser.com/questions/4904
# $1 是VPN 使用的介面名稱,比如 ppp0
# $2 沒查到
#...

好用 bash 設定

SSH 一次性 IP

alias tssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" '
alias tscp='scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"...

指令速查 – 文字處理

複製貼上

移除 # 註解:sed -e '/^*#/d'取得當前腳本所在目錄:參考:https://stackoverflow.com/questions/59895/

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE}" )" &> /dev/null &&...

Leave a Comment

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *