DB

【MySQL】外部キー制約を削除する

DB

制約の設定をしたものの、テストデータの投入段階でinsertを阻止してくる邪魔なforeign keyに悩まされたので、一時的に参照整合性の制約を削除します。 環境 MySQL 5.6 手順 まずは、テーブルに設定されている参照制約を確認しましょう。 mysql> SHOW CREATE…

【MySQL】新規ユーザーの追加と権限付与

DB

毎回ググるのが面倒なのでメモ。 ユーザーの作成 /* 抽象例 */ CREATE USER some_user@some_host IDENTIFIED BY 'some_password'; /* 具体例 */ CREATE USER hoge@localhost IDENTIFIED BY 'hogehoge'; 権限の付与 /* 抽象例 */ GRANT ALL PRIVILEGES ON som…

【MySQL】後からunique制約を付与する

DB

何度もググっていたので。 alter table some_table add unique (some_field); ちなみに、複数のフィールドの組み合わせで重複除去したい場合は以下。 alter table some_table add unique (some_field1, some_field2); 参考 MySQL で後からユニークインデック…

【Python3】データがstrではなくbytesで返ってくる問題【MySQL】

PyMySQL3を使ってDB内のデータ取得をしたところ、varchar型に設定されたカラムのデータがbytes型で返ってきてしまう問題に遭遇。 後々のためメモ。 環境 Python 3.4.3 MySQL 5.6 PyMySQL3 解決策 PyMySQL3への接続とクエリは以下のような平凡なものである。 …

【Python3】sqlite3.ProgrammingError: Incorrect number of bindings supplied【SQLite3】

また引っかかりそうなのでメモ。 環境 Python 3.4.3 sqlite3 解決策 executeメソッドでSQLを実行しようとしたところ、 sqlite3.ProgrammingError: Incorrect number of bindings supplied. と怒られてしまいました。 原因は単純で、executeメソッドの第二引…

【MySQL】データアップデート時に自動で時刻を更新する

DB

フルスタックのWebアプリケーションフレームワークだと自動でやってくれますが、小規模フレームワークだと自力でやらねばならないためメモ。 CREATE TABLE some_tabel ( `id` INT(11) NOT NULL AUTO_INCREMENT, `created` DATETIME NOT NULL DEFAULT CURRENT…

【SQLite3】基本コマンドとかのメモ

DB

普段MySQLばかり使っていて少々戸惑ったので軽くメモ。 ローカルのSQLite3を用いたデータベースを開く sqlite3 some.sqlite テーブルの一覧を表示 $ .tables 全てのテーブルのスキーマを表示 .schema 一部のテーブルのスキーマを表示 .schema some_table SQL…

MySQLのオートインクリメントをリセットする

DB

テストデータをいい加減に入れてしまって後悔すること、ありますよね。 ALTER TABLE table_name AUTO_INCREMENT = 1; これだけでオートインクリメントが初期化出来ます!素晴らしい!!

MySQLのデータベースをdumpする

DB

頻繁な記憶障害に対処するためメモ。MySQLで特定のデータベースをdumpするには、 mysqldump -u ユーザ名 dumpするDB名 -p > dump結果ファイル名.sql このコマンドを叩けば良い。 パスワードを設定していない場合、-pオプションは不要。上記はDBの中身も出力…

MySQL5.6ではrootユーザに初期パスワードが設定されている

DB

毎回忘れてしまうためメモ。MySQLのインストール後、 mysql -u root でログインしようとすると、 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) と言われ発狂。発狂者はさておき、MySQLは5.6から(?)初期パスワー…