Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

分類: 未分類

MySQL trigger 介紹

Posted on 2021 年 5 月 28 日2022 年 1 月 17 日 By 日落 在〈MySQL trigger 介紹〉中尚無留言

最近在研究 DBMS 的 trigger,不同 DBMS 的 trigger 的功能上差異不小,這裡僅對 MySQL 的 trigger 做筆記。

trigger 的意思同詞一樣,設計目的是讓 DB 的特定事件發生以後,去執行指定的動作。例如某 table 新增了一筆資料以後,將該筆資料記錄到另一個 table。

這次先使用「當使用者註冊成功以後,在 audit log 留下使用者 ID 和註冊的時間。先來建立 users 和 user_audit_log 這二個 table:

CREATE TABLE `users` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `user_name` VARCHAR(200) NOT NULL,
    `mail` varchar(255) NOT NULL
);
CREATE TABLE `user_audit_log` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `user_name` VARCHAR(200) NOT NULL,
    `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP()
);

然後來看一下 trigger 的 語法,trigger 可以針對 insert / update / delete 這幾個動作作出反應,另外也可以將 trigger 的動作放在以上幾個動作的之前 BEFORE 與之後 AFTER 執行,也就是說總共有以下這 6 種 trigger:

More “MySQL trigger 介紹” »

Tags:MySQL

DOOM CAPTCHA – 玩毀滅公爵才能過關的圖形驗證碼

Posted on 2021 年 5 月 25 日2021 年 5 月 25 日 By 日落 在〈DOOM CAPTCHA – 玩毀滅公爵才能過關的圖形驗證碼〉中有 1 則留言

自從 OCR 技術越來越精準後,文字類型的驗證碼 (CAPTCHA) 和圖形類的驗證碼就越來越容易被電腦辨識出來,反而真人進行辨識的時間有時還比電腦要長。

剛看到別人轉的訊息,有人把毀滅公爵做進的驗證碼中,被驗證者必須殺掉怪物才會被識別成真人:

來源:DOOM CAPTCHA

試玩後發現 DOOM CAPTCHA 有一定的 pattern,再來就是怪物長的都一模一樣。其實這種規律和圖形,專為遊戲設計的辨識工具,辨識速度會比人還要快 …. XD

Tags:XD, 資訊安全

MySQL 中 UPSERT (update or insert) 的語法

Posted on 2021 年 5 月 24 日2021 年 5 月 24 日 By 日落 在〈MySQL 中 UPSERT (update or insert) 的語法〉中尚無留言

MySQL 中要使用 IF ... ELSE 挺麻煩的,如果要在 insert 失敗 (資料已存在) 以後改對資料做 update 的話,可以考慮使用 INSERT .... ON DUPLICATE KEY。

假設要在 user 的 table 中,新增 user_id 和 mail:

INSERT INTO `user` (
    `user_id`,
    `mail`
) VALUES (
    "zero",
    "zero@zeroplex.tw"
)

當 user_id 是 unique index 時,上面的語法會失敗:duplicated key。
這時可以使用 MySQL 中的 INSERT … ON DUPLICATE KEY 語法,來讓 MySQL 自動判斷要使用 INSERT 還是 UPDATE:

INSERT INTO `user` (
    `user_id`,
    `mail`
) VALUES (
    "zero",
    "zero@zeroplex.tw"
) ON DUPLICATE KEY UPDATE 
    `mail` = "zero@zeroplex.tw"

上述語法,會讓 MySQL 執行時,若發現 zero 這個使用者已經存在時,變自動去更新他的 mail。

Tags:MySQL

Puzzle Together – 電腦上的自訂拼圖遊戲

Posted on 2021 年 5 月 14 日2021 年 5 月 20 日 By 日落 在〈Puzzle Together – 電腦上的自訂拼圖遊戲〉中有 1 則留言

Puzzle Together 是最近在 Steam 上看到新推出的遊戲,除了可以下載、購買圖畫、自己挑選拼圖難度,還可以建立多人連線和同好一起自虐挑戰。

More “Puzzle Together – 電腦上的自訂拼圖遊戲” »

Tags:分享, 遊戲

2021 年 PHP 各版本使用狀況

Posted on 2021 年 5 月 11 日2021 年 5 月 11 日 By 日落 在〈2021 年 PHP 各版本使用狀況〉中尚無留言

PHP Versions Status 2021 文章中看到,目前的 PHP 已經有過半都已經更新到 7.x,是個不錯的消息。

版本大至相同後,社群開發的共用函式庫、PHP 核心較能將花的時間收斂起來用在刀口上,遇到問題在網路上也比較容易找到解決方法。

接下來就看 8.x 的規範定下來後,大家慢慢把程式碼升上去了。

Tags:PHP

文章分頁

上一頁 1 ... 58 59 60 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.