MySQL

スポンサーリンク
サーバ

[MySQL]外部キー追加で「#1215 – 外部キー制約を追加できません。」となってしまう原因

概要 MySQLで既存のカラムに後から外部キーを追加しようとすると「1215 - 外部キー制約を追加できません。」となり追加できないことがある。 原因 親テーブルと子テーブルのカラムのデータ型が異なっていることが原因である。例えば以下のSQLの場合、users.item_idとitems.idのデータ型が違う場合は#1215エラーとなる。 ALTER TABLE `users` ADD CONST...
PHP

Laravel-MySQLのORDER BYでnullを後ろにする(中間テーブルにも対応)

概要 MySQLではnull許可のカラムでORDER BYすると、nullの行が先に取り出される。例えばLaravelでHoge::orderBy('score', 'asc')->get()とすると、scoreがnullの行が先に取り出され、その後にscoreがnullではない行が昇順で取り出される。 nullを後ろにする方法 Hoge::orderByRaw('score is null as...
サーバ

[MySQL][Postgres]外部キーがあるテーブルをTRUNCATEする方法

概要 データベースで外部キーがあるテーブルをTRUNCATEしようとするとエラーとなってしまう。例えば、MySQLの場合はCannot truncate a table referenced in a foreign key constraintとなり、TRUNCATEすることができない。 解決方法 一時的に外部キー制約を無効化することで、TRUNCATEすることができる。 MySQLの場合 se...
サーバ

[docker] MySQLで日本語が文字化けしてしまう場合の解決法

概要 dockerのMySQLコンテナはそのまま使うと日本語が文字化けしてしまう。MySQLの設定ファイルmy.cnfで文字コードを指定することで、文字化けを解消することができる。 手順 1. my.cnfを用意し、任意のディレクトリ内に格納する ここではmysql/my.cnfとする。 character_set_server = utf8mb4 collation-server=utf8mb4...
サーバ

[MySQL]バックスラッシュが含まれたデータがインポートできない場合の解決法

概要 mysqldumpなどで生成したSQLデータにバックスラッシュのデータが含まれている場合、インポート時にYou have an error in your SQL syntaxとなってしまうことがある。 原因 MySQLのバージョンや設定によって状況は異なるが、エクスポートするMySQLとインポートするMySQLのcharsetやcollationの相違が原因と考えられる。 解決方法 インポ...
データベース(書評)

「MySQL徹底入門 第4版 MySQL 8.0対応」の感想・備忘録2

MySQL徹底入門 第4版 MySQL 8.0対応posted with ヨメレバyoku0825/坂井 恵/鶴長 鎮一/とみたまさひろ/深町 日出海/福山 裕大 翔泳社 2020年07月06日頃 楽天ブックスで見るAmazonで見るKindleで見る 「MySQL徹底入門 第4版 MySQL 8.0対応」の感想・備忘録1の続き 全文検索 N-gramとMeCab パーサーはN-gramとMeCa...
データベース(書評)

「MySQL徹底入門 第4版 MySQL 8.0対応」の感想・備忘録1

MySQL徹底入門 第4版 MySQL 8.0対応posted with ヨメレバyoku0825/坂井 恵/鶴長 鎮一/とみたまさひろ/深町 日出海/福山 裕大 翔泳社 2020年07月06日頃 楽天ブックスで見るAmazonで見るKindleで見る 書籍「MySQL徹底入門 第4版 MySQL 8.0対応」のまとめ。 点数 82点 感想 インストール方法に始まり、必要な情報が一通り網羅されてい...
データベース(書評)

「やさしく学べるMySQL運用・管理入門」の感想・備忘録

やさしく学べるMySQL運用・管理入門posted with ヨメレバ梶山隆輔/山崎由章 インプレス 2016年12月 楽天ブックスで見るAmazonで見るKindleで見る ebookjapanで見る 書籍「やさしく学べるMySQL運用・管理入門」のまとめ。 点数 78点 感想 実際の運用方法よりもMySQLの仕様の説明が中心だった。 文字コード、照合順序、システム変数のチューニング、などは参考...
サーバ

mysqldumpコマンドでデータのみ出力する方法

いつも忘れてしまうので、メモがわりに投稿しておく。 概要 mysqldumpコマンドでデータのみ必要(テーブル定義は不要)な場合は、-tオプションを付ける。 mysqldump データベース名 テーブル1 テーブル2 -uユーザー名 -p -t > ファイル名 例 hogeデータベースからusersテーブルとitemsテーブルのデータのみをusers_items.sqlにエクスポート mysqld...
スポンサーリンク