Skip to content

Zeroplex 生活隨筆

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

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

標籤: Database

Laravel Migration 出現 foreign key constraint in complete 注意事項

Posted on 2022 年 4 月 16 日2022 年 4 月 16 日 By 日落 在〈Laravel Migration 出現 foreign key constraint in complete 注意事項〉中尚無留言

今天遇到錯誤訊息耽誤了很久:

... foreign key constraint 'xxx_id_foreign' are incompatible.

錯誤訊息沒有詳細列出可能的錯誤,追了很久才知道有一些地方要注意。

More “Laravel Migration 出現 foreign key constraint in complete 注意事項” »

Tags:Database, Laravel, PHP

SCRAM authentication requires libpq version 10 or above on PostgreSQL

Posted on 2022 年 3 月 5 日2022 年 3 月 5 日 By 日落 在〈SCRAM authentication requires libpq version 10 or above on PostgreSQL〉中尚無留言

遠端連線到 PostgreSQL 時,遇到錯誤訊息:

SCRAM authentication requires libpq version 10 or above

這個問題主要是新舊版本儲存使用者密碼的方法不同所導致的,只要讓 PostgreSQL 支援 MD5 儲存密碼即可。

開啟 postgresql.conf 修改 password_encryption 參數:

password_encryption = md5

再來修改 pg_hba.conf,讓使用者驗證的時候使用 MD5 方式驗證:

# IPv4 local connections:
host    all      all          127.0.0.1/32       scram-sha-256
host    all      zeroplex     0.0.0.0/0          md5

設定檔修改後記得重新啟動 PostgreSQL。

設定檔改好、啟動也沒問題,就來更新使用者密碼,這樣一來,PostgreSQL 的密碼儲存方式就會改用 MD5:

 ALTER USER zeroplex WITH PASSWORD 'your-password'
Tags:Database, PostgreSQL

快速複製 table 資料 – insert into select

Posted on 2021 年 1 月 18 日2021 年 3 月 12 日 By 日落 在〈快速複製 table 資料 – insert into select〉中尚無留言

遇到一個奇怪的需求,要備份特定資料表的資料。因為很懶所以直接從 SQL 動手。

用 show create table 複製原有資料表的 schema:

> show create table users G                                                                                         
***************************[ 1. row ]***************************
Table        | users
Create Table | CREATE TABLE `users` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`),
  KEY `idx_email` (`email`)
) ENGINE=InnoDB

再來用 「insert into select」 的方法來從原有的資料表拉資料:

insert into backup (name, email)
select name, email from users where id in (1, 3, 5)

這個作法好像會比一次一筆資料拉還要快一些,不過要注意的是 id (或是 auto_increment) 等欄位要忽略,讓 DB 自己處理,不然之後新增資料可能會出現 duplicated keys 之類的問題。

Tags:Database, db, MySQL

其他

關於我  (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 國際 授權條款授權.