[Codeigniter-users] DBエラー

Back to archive index

kunitsuji tsuji****@m-s*****
2009年 4月 14日 (火) 11:20:42 JST


 kunitsujiです。

エラーの内容を見ると、Duplicate entry 'hirakata20090411-1110-T1.mp3' for 
key 2、つまり、このファイルがユニークキーになっているにもかかわらず、重
複してますよ、ということかと思います。
すでにこのファイル名のテーブルが存在しているとかないですか?
ト書きながら見たら、空のテーブルですか。

では考えられるのは。。。。
プログラムで挿入処理のところで、2回インサーと走らせていませんでしょう
か?ソース上で2回INSERTを実行し、1回目は成功、2回目でエラー、
でテーブル見たら1個ある。
そんなかんじではないかなぁと。

>こんばんは、kazです。
>
>DBでおかしな事があり悩んでいます。空のテーブルにデータを挿入したらエラーがで
>ます。
>
>phpの部分
>$data = array('delete_date' => date('Y-m-d-H:i:s',time()),
>					'date' => $row->date,
>					'station' => $row->station,
>					'location' => $row->location,
>					'file' => $row->file,
>					'program' => $row->program,
>					'title' => $row->title,
>					'info' => $row->info,
>					'tuner' => $row->tuner
>					);
>$this->db->insert('trash', $data);
>
>CIが出したエラーメッセージ
>
>A Database Error Occurred
>Error Number: 1062
>Duplicate entry 'hirakata20090411-1110-T1.mp3' for key 2
>INSERT INTO `trash` (`delete_date`, `date`, `station`, `location`, `file`, `
>program`, `title`, `info`, `tuner`) VALUES ('2009-04-13-22:06:15', '2009-04-
>11 11:10:03', '2', '/RADIO/fm-radio/2009/hirakata', 'hirakata20090411-1110-T1.
>mp3', 'test1', '', '', 'Sony ST-J60')
>
>テーブルtrashは
>mysql> desc trash;
>+-------------+--------------+------+-----+---------+----------------+
>| Field       | Type         | Null | Key | Default | Extra          |
>+-------------+--------------+------+-----+---------+----------------+
>| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
>| delete_date | datetime     | YES  |     | NULL    |                |
>| date        | datetime     | YES  |     | NULL    |                |
>| station     | int(11)      | YES  |     | NULL    |                |
>| location    | varchar(50)  | YES  |     | NULL    |                |
>| file        | varchar(30)  | NO   | UNI |         |                |
>| program     | varchar(50)  | YES  |     | NULL    |                |
>| title       | varchar(50)  | YES  |     | NULL    |                |
>| info        | varchar(800) | YES  |     | NULL    |                |
>| tuner       | char(20)     | YES  |     | NULL    |                |
>+-------------+--------------+------+-----+---------+----------------+
>
>CIではエラーになっていますがtrashテーブルにはデータ1件が挿入されています。
>
>ターミナルからdelete from trash;でデータを消してから、直接mysqlコマンドで上記
>のCIが出したsqlを入力したらエラーメッセージはでません。
>
>どうしてもわからないのでなにかヒントをご教授お願いします。
>
>_______________________________________________
>Codeigniter-users mailing list
>Codei****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index