Submit Search
Upload
sql_require_primary_keyを使って主キーを必須にさせる
•
0 likes
•
1,968 views
lhfukamachi 深町
Follow
MySQL Casual Talks vol.11で発表した内容になります。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 45
Download now
Download to read offline
Recommended
グラフで見るMySQL5.6と8.0
グラフで見るMySQL5.6と8.0
lhfukamachi 深町
某社のDB運用周りあれこれ
某社のDB運用周りあれこれ
lhfukamachi 深町
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
Yohei Sasaki
mikasafabric for MySQL
mikasafabric for MySQL
yoku0825
MySQLおじさんの逆襲
MySQLおじさんの逆襲
yoku0825
5.7の次のMySQL
5.7の次のMySQL
yoku0825
MySQLアンチパターン
MySQLアンチパターン
yoku0825
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
yoku0825
Recommended
グラフで見るMySQL5.6と8.0
グラフで見るMySQL5.6と8.0
lhfukamachi 深町
某社のDB運用周りあれこれ
某社のDB運用周りあれこれ
lhfukamachi 深町
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
Yohei Sasaki
mikasafabric for MySQL
mikasafabric for MySQL
yoku0825
MySQLおじさんの逆襲
MySQLおじさんの逆襲
yoku0825
5.7の次のMySQL
5.7の次のMySQL
yoku0825
MySQLアンチパターン
MySQLアンチパターン
yoku0825
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
yoku0825
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
Takahiro Okumura
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
Akihiro Kuwano
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
とあるイルカの近況報告
とあるイルカの近況報告
yoku0825
mysqlcasual6-fabric
mysqlcasual6-fabric
doublemarket
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
Aurora MySQL HandMade Major VersionUp
Aurora MySQL HandMade Major VersionUp
Takafumi Nakahara
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
yoku0825
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システム
Naosuke Okamoto
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
Masahiro NAKAYAMA
POWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマーク
NHN テコラス株式会社
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼み
aoike
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
Satoshi Kubo
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
Mikiya Okuno
MySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
yoku0825
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
MySQLのリアルタイムモニタリングツールを作った話
MySQLのリアルタイムモニタリングツールを作った話
Kentaro Kitagawa
シェルスクリプトでQOLを上げる話
シェルスクリプトでQOLを上げる話
Junpei Matsuda
07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)
文樹 高橋
More Related Content
What's hot
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
Takahiro Okumura
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
Akihiro Kuwano
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
とあるイルカの近況報告
とあるイルカの近況報告
yoku0825
mysqlcasual6-fabric
mysqlcasual6-fabric
doublemarket
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
Aurora MySQL HandMade Major VersionUp
Aurora MySQL HandMade Major VersionUp
Takafumi Nakahara
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
yoku0825
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システム
Naosuke Okamoto
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
Masahiro NAKAYAMA
POWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマーク
NHN テコラス株式会社
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼み
aoike
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
Satoshi Kubo
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
Mikiya Okuno
MySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
yoku0825
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
MySQLのリアルタイムモニタリングツールを作った話
MySQLのリアルタイムモニタリングツールを作った話
Kentaro Kitagawa
What's hot
(20)
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
とあるイルカの近況報告
とあるイルカの近況報告
mysqlcasual6-fabric
mysqlcasual6-fabric
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearch
Aurora MySQL HandMade Major VersionUp
Aurora MySQL HandMade Major VersionUp
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システム
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
POWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマーク
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼み
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
MySQLのリアルタイムモニタリングツールを作った話
MySQLのリアルタイムモニタリングツールを作った話
Similar to sql_require_primary_keyを使って主キーを必須にさせる
シェルスクリプトでQOLを上げる話
シェルスクリプトでQOLを上げる話
Junpei Matsuda
07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)
文樹 高橋
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
Shunya Ueta
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
MySQL clients
MySQL clients
yoku0825
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
Similar to sql_require_primary_keyを使って主キーを必須にさせる
(6)
シェルスクリプトでQOLを上げる話
シェルスクリプトでQOLを上げる話
07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
MySQL clients
MySQL clients
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
Recently uploaded
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Recently uploaded
(12)
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
sql_require_primary_keyを使って主キーを必須にさせる
1.
sql_require_primary_keyを使って主キーを必 須にさせる 1
2.
自己紹介 $ cat /etc/lhfukamachi/lhfukamachi‑auto.cnf | jq { "Version": 0.0.2, "lhfukamachi": { "Metadata": { "BirthDay": 622134000, "attribute": "渋谷で働く見習いDBA", "Twitter": "@lhfukamachi", } } 2
3.
みなさんプライマリーキー(PK)は好きです か? 3
4.
僕は大主キーです 4
5.
主キーの好きなところ 絶対にNotNullである PK引きが爆速 貼り方によっては容量を節約できる 主キーの無いテーブルを目一杯見た後に、主キーのあるテーブルを 見ると謎の安心感を感じられる 5
6.
MySQL8.0.13からPKをテーブルに必須とす ることができるようになりました。 6
7.
sql_require_primary_key 7
8.
sql_require_primary_key テーブルの作成またはテーブル構造の変更の時に主キーを必須にさ せる。 オンラインで変更可能 GLOBALで設定すると自身のセッション以外が設定される 8
9.
もしPKが無いテーブルを作ろうとすると… ERROR 3750 (HY000): Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setting. 9
10.
sql_require_primary_keyをもっと調べる 10
11.
sql_require_primary_keyでできること、 できないこと 11
12.
疑問1: PKがないテーブルがすでに有る場合に設定できるか。 12
13.
PKがないテーブルがすでに有る場合に設定で きるか。 1.PKのないテーブルを作成して設定してみる。 mysql [d1]> SHOW VARIABLES LIKE 'sql_require_primary_key'; +‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑+‑‑‑‑‑‑‑+ | Variable_name | Value | +‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑+‑‑‑‑‑‑‑+ | sql_require_primary_key | OFF | +‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑+‑‑‑‑‑‑‑+ 1 row in set (0.00 sec) mysql [d1]> CREATE TABLE no_pk_table(id int, value varchar(256)); Query OK, 0 rows affected (0.14 sec) mysql [d1]> SET GLOBAL sql_require_primary_key = 1; Query OK, 0 rows affected (0.00 sec) 13
14.
通った! 14
15.
疑問2: SETSESSIONは使えるか? 15
16.
SETSESSIONは使えるか? mysql [(none)]> SET SESSION sql_require_primary_key = 1; Query OK, 0 rows affected (0.04 sec) 16
17.
使えます! 17
18.
疑問3: TEMPORARYTABLEも対象か? 18
19.
TEMPORARYTABLEも対象か? mysql [d1]> SHOW VARIABLES LIKE 'sql_require_primary_key'; +‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑+‑‑‑‑‑‑‑+ | Variable_name | Value | +‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑+‑‑‑‑‑‑‑+ | sql_require_primary_key | ON | +‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑+‑‑‑‑‑‑‑+ 1 row in set (0.00 sec) mysql [d1]> CREATE TEMPORARY TABLE no_pk_tmp_table(id int, value varchar(256)); ERROR 3750 (HY000): Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setting. 19
20.
対象らしい… 20
21.
疑問4: PRIMARYKEYをDROPすることはできるの か? 21
22.
PRIMARYKEYをDROPすることはできるの か? mysql [d1]> SHOW CREATE TABLE pk_tableG *************************** 1. row *************************** Table: pk_table Create Table: CREATE TABLE `pk_table` ( `id` int(11) NOT NULL, `value` varchar(256) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin 1 row in set (0.07 sec) mysql [d1]> ALTER TABLE pk_table DROP PRIMARY KEY; ERROR 3750 (HY000): Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setting. 22
23.
できなかった 23
24.
PRIMARYKEYをDROPすることはできるの か? DROPとADDを記述すればOKなのでPKを変更したいときは1文で記述す る mysql [d1]> ALTER TABLE pk_table DROP PRIMARY KEY, ADD PRIMARY KEY(value); Query OK, 0 rows affected (0.12 sec) Records: 0 Duplicates: 0 Warnings: 0 24
25.
疑問5: NOTNULL+UNIQUEKEYでもいい? 25
26.
NOTNULL+UNIQUEKEYでもいい? mysql [d1]> CREATE TABLE unique_notnull_table(id int NOT NULL UNIQUE KEY, value varchar(256)); ERROR 3750 (HY000): Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setting. 26
27.
だめだった 27
28.
疑問6: InnoDB以外でも使える? 28
29.
InnoDB以外でも使える? MyISAM: CREATE TABLE pk_table_myisam(id int, value varchar(256)) ENGINE=myisam; ERROR 3750 (HY000): Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setting. CREATE TABLE pk_table_myisam2(id int primary key, value varchar(256)) ENGINE=MYISAM; Query OK, 0 rows affected (0.04 sec) 29
30.
InnoDB以外でも使える? CSV: mysql [d1]> CREATE TABLE pk_table_csv(id int primary key, value varchar(256)) ENGINE=CSV; ERROR 1069 (42000): Too many keys specified; max 0 keys allowed mysql [d1]> CREATE TABLE pk_table_csv(id int, value varchar(256)) ENGINE=CSV; ERROR 3750 (HY000): Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setting. 30
31.
InnoDB以外でも使える? CSV: どうしてもCSVを使いたいならSETSESSIONで一時的にOFFる mysql [d1]> SET SESSION sql_require_primary_key = 0; Query OK, 0 rows affected (0.02 sec) mysql [d1]> CREATE TABLE pk_table_csv(id int not null, value varchar(256) not null) ENGINE=CSV; Query OK, 0 rows affected (0.04 sec) 31
32.
疑問7: INVISIBLEは効く? 32
33.
INVISIBLEは効く? そもそもPRIMARYKEYに対してはいんびじれない。 MySQLsupportsinvisibleindexes;thatis,indexesthatarenot usedbytheoptimizer.Thefeatureappliestoindexesotherthan primarykeys(eitherexplicitorimplicit). https://dev.mysql.com/doc/refman/8.0/en/invisible‑indexes.html 33
34.
疑問8: レプリケーションは? 34
35.
レプリケーションは? 例えばこういう構成 35
36.
レプリケーションは? 通る!!!!? 36
37.
なぜ通るのか。binlogを見てみる。 190607 12:40:29 server id 29355 end_log_pos 653 CRC32 0x974104c3 Query thread_id=22 exec_time=0 error_code=0 Xid = 58 use `d1`/*!*/; SET TIMESTAMP=1559878829/*!*/; /*!C utf8mb4 *//*!*/; SET @@session.character_set_client=255,@@session. collation_connection=255,@@session.collation_server=46/*!*/; /*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/; /*!80013 SET @@session.sql_require_primary_key=0*//*!*/; CREATE TABLE `no_pk_table` ( `id` int(11), `value` varchar(256) ) /*!*/; SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/; DELIMITER ; 37
38.
レプリケーションは? DDLを実行前に SET @@session.sql_require_primary_key=0 を実行している。 38
39.
レプリケーションは? ただしこういう構成は注意! 39
40.
レプリケーションは? レプリケーションが止まる! 40
41.
レプリケーションは? レプリケーションが止まる! mysql [d1]> SHOW SLAVE STATUSG ~ ~ Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 3750 Last_SQL_Error: Error 'Unable to create or change a table without a primary key, when the system variable 'sql_r equire_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row‑based replication, so please consult your DBA before changing this setti ng.' on query. Default database: 'd57'. Query: 'CREATE TABLE `no_pk_table` ( `id` int(11), `value` varchar(256) )' 41
42.
レプリケーションは? SETSESSIONでsql_require_primary_keyをOFFってSTARTSLAVEする DDLが通ったらONにして再度レプリケーションをSTOP・STARTする 42
43.
まとめ sql_require_primary_keyは 既存のテーブルにPKがなくても設定でき、 SETSESSIONでも使えて、 TEMPORARYTABLEも対象になり、 PKをDROPすることはできなくて、※変更はできる InnoDB以外でもつかえる 便利なオプションです。 43
44.
ぜひ設定してPKライフを楽しみましょう。 44
45.
以上 45
Download now