君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

MySQL

You can't specify target table '***' for update in FROM clause〜MySQLにて、サブクエリのみに適用されるエラーがある〜

こういう感じのSQLを書いた UPDATE parent SET name = 'hogehoge' WHERE parent_id IN ( SELECT parent.parent_id FROM parent LEFT JOIN children as c ON parent.parent_id = c.parent_id ); そしたらこんなエラーが出てきた You can't specify target tab…

MySQLにて、特定のカラムに日本語が含まれているかどうかを抽出

あるカラムに日本語が含まれていることを検出したい 結論 あるカラムに対して、 LENGTH CHARACTER_LENGTH の値が異なることを利用する。 SQLの例 SELECT * FROM table_name WHERE LENGTH(column_name) != CHARACTER_LENGTH(column_name); 解説 LENGTHは「バ…

本番環境にテストデータを入れてしまったときは、deleteではなくtruncateでテーブルからレコードを一掃しよう〜deleteとtruncateの違い〜

いきさつ 社内で使用するシステムの開発が一旦落ち着いたので、 本番環境構築することになった。 といってもすでにテスト環境を構築しているので、 慣れたものである。 種々のインスタンスを立ち上げ、ansible用のユーザを作成し、 playbookの諸々の設定位置…

DockerでMySQLコンテナを起動し、Sequel Proで接続してみる

MySQL、ちょっとだけ試したい時がある 「indexってどうやって貼るんだっけ?」 「外部キー制約ってどういうふうに効いてくるんだっけ?」 「ちょっとSQLの練習がしてみたいなぁ」 というとき、 DBとして残すほどではないけどMySQLを試したいな〜と思います。…

データベースの「データ型」とは何か?(その1)

はじめに 皆さん、データベースのデータ型について意識した事はありますか? 「データ型って何?」って思ったそこのRails使いの方! rails db postgres=# \d table_name を叩いてみましょう。 ※ table_nameは存在する適当なテーブル名 すると、以下のテーブ…

MySQLにて外部キーが貼れない。エラーは出ていない(MySQLのストレージエンジン・InnoDBとMyISAMの違い)

MySQLにて外部キーを貼ろうとした table_aのidがtable_bのidを外部キーとして参照するように、 以下のようなSQLを流した。 alter table `table_a_name` add constraint table_a_name_ibfk_1 foreign key (table_a_id) references table_b_name(table_b_id) o…