開発メモ

開発用のメモです。

RDBMS

プラグイン開発時にバグで プラグインを削除できなかった場合の削除方法 (MySQL版)

-- 主キー制約を解除 (MySQL Workベンチ用) SET SQL_SAFE_UPDATES=0; -- 対象のプラグインを削除 delete from dtb_plugin where plugin_name = 'PLUGIN_NAME'; -- 連携されていないフックポイントを削除 delete from dtb_plugin_hookpoint where plugin_id i…

ECCUBE テーブル・カラムの存在確認

EC Cube 管理者パスワードを忘れた場合の対処

MySQL で確認しています。 login password を password に変更します。 UPDATE `dtb_member` SET `password` = '4b4784866022df3731abdd75ab4cca3caf7aadbaf0e0c85076b439df66e300a6', -- password `salt` = 'sowrealaec' WHERE `member_id` = 1 PHP で任意…

MySQL 各種一覧

データベース一覧 SHOW DATABASES; テーブル一覧 SHOW TABLES; テーブル状態一覧 SHOW TABLE STATUS; トリガー一覧 SHOW TRIGGERS;

MySQL ERROR 1175

UPDATE/DELETE 主キー制約 OFF SET SQL_SAFE_UPDATES=0; UPDATE/DELETE 主キー制約 ON SET SQL_SAFE_UPDATES=1; また 外部キー制約を解除/設定する場合 外部キー制約 OFF SET FOREIGN_KEY_CHECKS = 0 外部キー制約 ON SET FOREIGN_KEY_CHECKS = 1

PHPからリモートの Oracle に接続できない場合に確認すること

以下処理を試してみる。 [user@web.example.com ~]$ export ORACLE_HOME= [user@web.example.com ~]$ php -r 'echo oci_connect("ORAUSER","password","oracle.example.com:1521/ora01");' [user@web.example.com ~]$ [user@web.example.com ~]$ export ORAC…

SQLIte3 シーケンス

作成・発行・参照 標準は オートインクリメント CREATE TABLE USER ( ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT ); INSERT INTO USER VALUES (NULL, 'TEST'); SELECT seq FROM sqlite_sequence WHERE name = 'USER';

Postgres シーケンス

発行・参照・設定 SELECT nextval('USER_ID_SEQ'); SELECT currval('USER_ID_SEQ'); SELECT setval('USER_ID_SEQ',1); -- USER_ID_SEQ : シーケンス名

オラクル(Oracle) シーケンス

作成・発行・参照 CREATE OR REPLACE SEQUENCE USER_ID_SEQ; SELECT USER_ID_SEQ.NEXTVAL FROM DUAL; SELECT USER_ID_SEQ.CURRVAL FROM DUAL; -- USER_ID_SEQ : シーケンス名

MySQL ユーザー削除を Drop User で実行しない場合のSQL

権限情報が残ってるからみたいです。 DROP TEMPORARY TABLE IF EXISTS `duser`; CREATE TEMPORARY TABLE IF NOT EXISTS `duser` AS SELECT `Host`,`User` FROM `mysql`.`user` Where `User` = 'dbuser2'; DELETE x FROM `user` x, `duser` d WHERE x.Host = …

Eclipse で テーブル定義書などを作成

ER Master エクリプス アップデートサイト http://ermaster.sourceforge.net/update-site/

都道府県テーブル

-- 作成 drop table if exists prefs; create table if not exists prefs( id int auto_increment comment 'ID', pref_code int(3) comment 'PCD' , pref_name varchar(200) not null comment '都道府県名', primary key (id) ) comment '都道府県管理'; -- …

MySQL テーブル作成と削除

通常 CREATE TABLE IF NOT EXISTS `test_01` ( id INT NOT NULL, str_200_len VARCHAR(200) NOT NULL, created_date DATE NOT NULL, updated_date TIMESTAMP NOT NULL, PRIMARY KEY(id) ) COMMENT 'table comment'; DROP TABLE IF EXISTS `test_01`; ビック…

住所検索用テーブルの作成

DROP TABLE IF EXISTS `addresses`; CREATE TABLE `addresses` ( `id` int(9) NOT NULL default 0 COMMENT '住所コード', `ken_id` int(2) default NULL COMMENT '都道府県コード', `city_id` int(5) default NULL COMMENT '市区町村コード', `town_id` int(…

MySQL DB作成とDB削除

CREATE DATABASE IF NOT EXISTS `test_db_01` CHARACTER SET utf8 COLLATE utf8_general_ci; DROP DATABASE IF EXISTS `test_db_01`; ※ 日本語対応版

MySQL 日付範囲指定時に年始、年末を取得する

SELECT CONCAT(YEAR(now()) ,'-01-01') AS S_DATE, CONCAT(YEAR(now()) ,'-12-31') AS E_DATE まあ年と 正月、晦日を接続です

MySQL パテーションの追加

ALTER TABLE users ADD PARTITION ( PARTITION p5 VALUES LESS THAN (6000));

MySQL Tableパテーションを用いたテーブル

drop table if exists users; create table if not exists users ( id int auto_increment comment 'ID', parent_id int comment 'PID' , -- role_id int comment 'RID', username varchar(200) not null comment 'ユーザー名', usermail varchar(200) not n…

MySQL 主キー削除

※ 基本しないほうがいい ALTER TABLE `users` DROP PRIMARY KEY;

MySQL カラムの削除

※ 基本使わないほうがいい ALTER TABLE `users` DROP `usermail`;

MySQL 初期値の設定

-- 初期値を設定 -- UPDATE `users` SET `usermail` = ' ' WHERE `usermail` IS NULL; ALTER TABLE `users` ALTER `usermail` SET DEFAULT ' '; -- 初期値を解除 ALTER TABLE `users` ALTER `usermail` DROP DEFAULT;

MySQL 主キーの追加 (PK)

ALTER TABLE `users` ADD PRIMARY KEY (`id`);

MySQL Trigger でパスワードの暗号化

DELIMITER $$ -- insert CREATE TRIGGER `users_before_insert` BEFORE INSERT ON `users` FOR EACH ROW BEGIN SET NEW.`userpass` = password(NEW.`userpass`); END $$ -- update CREATE TRIGGER `users_before_update` BEFORE UPDATE ON `users` FOR EACH …

MySQL 外部制約を一時的に除外する

-- 解除 SET FOREIGN_KEY_CHECKS=0; -- 復旧 SET FOREIGN_KEY_CHECKS=1;

MySQL 一意制約の追加(UK)

ALTER TABLE `users` ADD CONSTRAINT UNIQUE INDEX `users_username` (`username`); ALTER TABLE `users` ADD CONSTRAINT UNIQUE INDEX `users_usermail` (`usermail`);

MySQL 外部制約の追加 (FK)

ALTER TABLE `users` ADD CONSTRAINT FOREIGN KEY (`parent_id`) REFERENCES `users`(`id`) ON DELETE SET NULL; ALTER TABLE `users` ADD CONSTRAINT FOREIGN KEY (`created_id`) REFERENCES `users`(`id`) ON DELETE SET NULL; ALTER TABLE `users` ADD CO…

MySQL カラムの追加

ALTER TABLE `users` ADD COLUMN `created` datetime not null default current_timestamp comment '作成日時'; ALTER TABLE `users` ADD COLUMN `modified` datetime not null default current_timestamp comment '更新日時'; ALTER TABLE `users` ADD COLU…

MySQL アップデート時にパスワードを暗号化する

CREATE TRIGGER `tr_users_before_update` BEFORE UPDATE ON `users` FOR EACH ROW SET NEW.login_password = IF ( NEW.login_password<>OLD.login_password, /*TRUE */md5(NEW.login_password), /*FALSE*/OLD.login_password )

MySQL インサート時にパスワードを暗号化する

CREATE TRIGGER `tr_users_before_insert` BEFORE INSERT ON `users` FOR EACH ROW SET NEW.login_password = md5(NEW.login_password)

Cakephp findで BETWEEN を使う

MySQL テストデータ作成

Insert 時に ID と指定した場合 Insert される IDの値が設定される。 INSERT INTO TEST_TBL (ID, NAME) VALUES (FUNCTION(), CONCAT('NAME_', ID));

Eclipse プラグイン ERMaster

ERMaster 機能 DB -> ER図作成 ER図 -> DDL作成 ER図 -> テーブル定義書作成 対応RBDBMS MySQL Oracle PostgreSQL (開発途上) DB2(開発途上) HSQLDB(開発途上) SQLITE(開発途上) SQLServer(開発途上) インストール 拡張子 ER図ファイル(形式 XML) .erm ER図…

MySQL 2つの必須項目をもつテーブルのデータを手早く作る

delimiter $ DROP PROCEDURE IF EXISTS exec2$ CREATE PROCEDURE exec2( IN SQL_VARCHAR TEXT, IN LOOP_COUNT_MAX INT, IN VAL1 TEXT, IN VAL2 TEXT ) BEGIN DECLARE LOOP_COUNT INT DEFAULT 1; SET @STMT = SQL_VARCHAR; PREPARE STMT FROM @STMT; WHILE LO…

MySQL 1つの必須項目をもつテーブルのデータを手早く作る

作成SQL DELIMITER $ DROP PROCEDURE IF EXISTS exec1$ CREATE PROCEDURE exec1( IN SQL_VARCHAR TEXT, IN LOOP_COUNT_MAX INT, IN VAL TEXT ) BEGIN DECLARE LOOP_COUNT INT DEFAULT 1; SET @STMT = SQL_VARCHAR; PREPARE STMT FROM @STMT; WHILE LOOP_COUN…

Twitter: @asahina_alice