DELIMITER //
CREATE PROCEDURE test1()
BEGIN
DECLARE not_found INT DEFAULT 0;
DECLARE v_deptno INT;
DECLARE v_dname VARCHAR(14);
DECLARE cur1 CURSOR FOR SELECT deptno FROM emp ORDER BY empno;
DECLARE cur2 CURSOR FOR SELECT dname FROM dept WHERE deptno = v_deptno;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET not_found = 1;
OPEN cur1;
loop1: LOOP
FETCH cur1 INTO v_deptno;
IF not_found THEN
CLOSE cur1;
LEAVE loop1;
END IF;
OPEN cur2;
loop2: LOOP
FETCH cur2 INTO v_dname;
IF not_found THEN
SET not_found = 0; ← フラグを戻す
CLOSE cur2;
LEAVE loop2;
END IF;
INSERT INTO work (dname) VALUES (v_dname);
END LOOP;
END LOOP;
END
//
DELIMITER ;
2017年9月25日月曜日
2017年7月20日木曜日
MySQLのコマンドラインでCSVからデータ取込みを実行する
MySQLのコマンドラインでCSVからデータ取込みを実行する
MYSQL> LOAD DATA INFILE 'ファイル名'
INTO TABLE テーブル名
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
これをファイルにしてから実行するには
MySQL>source 実行するファイル
MYSQL> LOAD DATA INFILE 'ファイル名'
INTO TABLE テーブル名
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
これをファイルにしてから実行するには
MySQL>source 実行するファイル
ラベル:
CommandLine,
CSV,
LOAD,
MySQL,
SQL
2017年7月19日水曜日
MySQLのCHARとVARCHARの指定はバイトでは無く文字数
MySQLのCHARとVARCHARの指定はバイトでは無く文字数
OracleやMS-SQLのようにCHAR , VARCHARの指定はバイトと思っていました。
MySQL Version4以降からバイトから文字に指定が変わったそうです。
OracleやMS-SQLのようにCHAR , VARCHARの指定はバイトと思っていました。
MySQL Version4以降からバイトから文字に指定が変わったそうです。
2017年3月28日火曜日
Oracle -> MySQL SQL変換メモ
http://terukizm.hatenablog.com/entry/20110801/1312181426
■システム日付
■外部結合
・Oracle SYSDATE ・MySQL NOW()■日付型→文字列型変換(YYYY/MM/DD)
・Oracle: TO_DATE(TO_CHAR(SYSDATE), 'YY-MM-DD') ・MySQL: DATE_FORMAT( SYSDATE() , '%Y-%m-%d')■TRUNC(日付)
・Oracle TRUNC(SYSDATE) ・MySQL DATE(SYSDATE())■ADD_MONTH
・Oracle ADD_MONTHS(SYSDATE, 1) ・MySQL DATE_ADD(SYSDATE(),INTERVAL 1 MONTH)■MONTHS_BETWEEN
・Oracle MONTHS_BETWEEN(SYSDATE, SYSDATE+1) ・MySQL DATEDIFF(SYSDATE(), SYSDATE()+1)■TO_NUMBER
・Oracle TO_NUMBER('-100') ・MySQL CAST('-0008000' as signed)■TO_DATE
・Oracle TO_DATE('9999/12/31', 'YYYY/MM/DD') ・MySQL STR_TO_DATE('9999/12/31', '%Y/%m/%d')■NULL文字変換
・Oracle: NVL(exp1,exp2) ・MySQL: IFNULL(exp1, exp2)
■外部結合
・Oracle: WHERE A.id(+) = B.id ・MySQL: FROM A RIGHT OUTER JOIN B ON (A.id = B.id) ・Oracle: WHERE A.id = B.id(+) ・MySQL: FROM A LEFT OUTER JOIN B ON (A.id = B.id)
2013年2月26日火曜日
MYSQL WORKBENCHでError Code: 1175の対処法
MYSQL WORKBENCHでError Code: 1175の対処法
Error Code: 1175
You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
safe updateモードをoffにするには
- Edit -> Preferences
- SQL Queriesタブを開く
- 次のチェックをはずす “Safe Updates…”

元ネタ
http://www.jwaver.com/mysql-workbench%E3%81%A7error-code-1175%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95
2012年12月5日水曜日
登録:
投稿 (Atom)