Copy & Paste Engineer

Category

Database

Database に関する技術記事の一覧です。Copy & Paste Engineerで公開している実装メモ、検証、トラブルシュートをまとめています。

MySQLで ORDER BY + IS NULL を使って NULL を末尾に寄せる

MySQLで ORDER BY を使うと NULL が先頭に並ぶ問題を、IS NULL を組み合わせるだけで安全に末尾へ送るテクニックを解説します。

MySQL の SYSDATE() と NOW() の違いを整理する

MySQL の日付関数 SYSDATE() と NOW() の違いと使い分け、レプリケーションへの影響や設定オプションを整理します。

【PostgreSQL】データベースを初期化する方法

開発やテスト環境では、データベースを完全にリセットしたい場面が頻繁にあります。

【PostgreSQL】MySQLのGROUP_CONCATと同様の機能を実現する STRING_AGG

PostgreSQLでMySQLのGROUP_CONCAT関数と同様の機能を実現する方法について説明します。STRING_AGG関数を利用する場合の問題点とその解決策を紹介し、サンプルコードを交えて具体的な使用方法を解説します。

【PostgreSQL】JSONフィールドを使用する

PostgreSQLはJSONデータをそのまま保存でき、柔軟な検索機能を利用することで、複雑なデータ構造を効率的に扱うことができます。PostgreSQLでのJSONフィールドの検索方法について解説します。

【GitHub】GitHub Actions MySQL データベースを利用する

GitHub Actionsを使用して MySQL データベースをセットアップし、接続テストを行う手順をご紹介します。

【Elixir】EctoクエリをSQLにして取得する方法

ElixirでEctoを使用している際に、EctoクエリからSQLを取得する方法メモ。

【Elixir】タイムゾーンエラーの解決策

特定のタイムゾーンを指定して現在の日時を取得しようとするとエラーが発生することがあります。

【Elixir】Mnesiaで分散データベースを構築し、クラスタ同期を行う

ElixirとErlangの分散データベースであるMnesiaを利用することで、分散システムにおけるデータの管理が格段に簡単になります。

【Elixir】Ecto V3以上でTelemetryを使ってSQLログを出力する方法

ElixirのEcto V3以上でTelemetryを使用してSQLログを出力する方法について説明します。

【Mysql】コマンドラインで入力中だったものを終了させる方法

Mysql でコマンドラインでtypoしたりして入力中だったものを途中で終了させる方法

【Laravel】データベースに影響が出ないようにテストする

Laravel には各種テスト用の trait が用意されていて、それらを使用することでデータベースに影響が出ないようにテストができます

【Mysql】DBが存在することを確認する方法

Mysql でDBが存在することを確認する方法

【Mysql】外部キー制約を無効化する方法

Mysql でテーブルやデータを削除する時に外部キーのせいで簡単に出来ない時がそれを解決するために外部キー制約を無効化する方法

【Mysql】大量のスロークエリログを簡単に解析できる mysqldumpslow

Mysql の大量のスロークエリログを簡単に解析できる mysqldumpslow を使ってみる。

【Laravel】複数のSQLを一括実行する DB::unprepared

Laravel で複数のSQLを一括実行する DB::unprepared を使用する

【Mysql】ERROR 1248 (42000): Every derived table must have its own alias エラーの解決

Mysql ERROR 1248 (42000): Every derived table must have its own alias エラーの解決メモ

【Mysql】連続した日付の表を作る

Mysql で 連続した日付の表を作る方法

【Mysql】UNIXタイムスタンプ <=> 日時 変換方法

UNIXタイムスタンプ <=> 日時 変換方法メモ

【Mysql】mysqlコマンドから直接SQLを実行する

Mysql で mysqlコマンドから直接SQLを実行するメモ

【Mysql】mysqlコマンドを実行する際、パスワードに記号が入っている際の対応方法

Mysql で mysqlコマンドを実行する際、パスワードに記号が入っている際の対応方法メモ

【Mysql】実行中のプロセスを検索する

processlist を使用し実行中のプロセスを見ることができますが、プロセス数が多いと対象のプロセスを探すのが困難になりますがそんなプロセスを確認する方法

【Mysql】ERROR 1136 (21S01): Column count doesn't match value count at row のエラー解決方法

Mysql ERROR 1136 (21S01): Column count doesn't match value count at row のエラーの解決メモ

【Mysql】指定したパーティションのみを検索する

Mysqlで指定したパーティションのみを検索する方法メモ

【Mysql】テーブル更新時間を確認する

Mysql でテーブル更新時間を確認する方法メモ

【Mysql】ERROR 1526 (HY000): Table has no partition for value エラーの解決

Mysql ERROR 1526 (HY000):Table has no partition for value エラーの解決メモ

【Mysql】ERROR 1659 (HY000): Field 'num' is of a not allowed type for this type of partitioning エラーの解決

Mysql ERROR 1659 (HY000): Field 'num' is of a not allowed type for this type of partitioning エラーの解決メモ

【Mysql】ERROR 1564 (HY000): This partition function is not allowed エラーの解決

Mysql ERROR 1564 (HY000): This partition function is not allowed エラーの解決メモ

【Mysql】ERROR 1659 (HY000): The PARTITION function returns the wrong type エラーの解決

Mysql ERROR 1659 (HY000): The PARTITION function returns the wrong type エラーの解決メモ

【Mysql】ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function エラーの解決

Mysql ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function エラーの解決メモ

【Mysql】float, double型でテーブルのパーティションが切れない

Mysql で float, double型でテーブルのパーティションが切れなかったため解決した方法のメモ

【Laravel】mysql strict の注意点

Laravel では mysql への接続オプションとしてstrict(厳密)モードがあり気をつける必要があります。

【Mysql】テーブルの件数を取得する際に TABLE_ROWS と COUNT の違いの注意点

テーブルのデータ量が多く、COUNT だと時間が掛かるため、INFORMATION_SCHEMATABLES.TABLE_ROWS から件数を確認してみたのですが、これが実際の件数と違うので注意が必要です。

【Mysql】CREATE TABLE はトランザクションが効かないで暗黙的にコミットされる

Mysql でCREATE TABLE はトランザクションが効かないで暗黙的にコミットされる

【Laravel】Mysql とのコネクションをプーリングさせる方法

Laravel で Mysql とのコネクションプーリングを行う方法メモ

【Mysql】#hy000you can't specify target table 'hoge' for update in from clause の解決方法

Mysql の #hy000you can't specify target table 'hoge' for update in from clause の解決方法

【DB】テーブルを簡単に一括削除する方法

データベースでテーブルを簡単に一括削除する方法

【VSCode】SQLTools を使用してSQLを自動的に整形する

VSCode でSQLを自動的に整形するためのメモ

【Python】SQLAlchemy where in 検索を行う

PythonのSQLAlchemyでwhere句のinの検索を行う方法

【Python】PostgreSQL使用時に文字列をエスケープする方法

PythonでPostgreSQL使用時に文字列をエスケープする方法メモ

【Mysql】テーブルバックアップ方法

Mysql で簡単にテーブルのバックアップをする方法

【Docker】Mysql が立ち上がらない(ユーザ設定エラー)

Docker で Mysql が立ち上がらない現象が発生したためメモ。

PHP で Database の Tableを丸ごとコピー

テスト用のDBの整備が手間だったのでPHPで Database の Table定義を丸ごとコピーしました。

【Mysql】存在チェックINSERT文 重複行を挿入しない方法

存在チェックを行い、データを挿入する時に同一のデータがある場合は挿入したくないって時に使えるSQLのメモ