データのインサートを以下のようにしていますが、idへの入力が
Duplicate entry '4' for key 'PRIMARY'などと、入力できたりできなかったりします。
//String SQL = "insert into meibo (id,name,adr) VALUES (?,?)";
// try(PreparedStatement ps = con.prepareStatement(SQL)){
//ps.setInt(1,5);
// ps.setString(1,"康二郎");
// ps.setString(2,"aji");
// ps.executeUpdate();
//con.commit();
// con.close();
// System.out.println("End");
// }
▽1
●
kaoato ●180ポイント ベストアンサー |
javaでなくて、SQL文をすこし調べられては?
■
>CREATE TABLE
>では、テーブルがある場合にエラーになります。
これはテーブルを作成するSQLなので、すでにテーブルが存在するとエラーになります。
仕様通り。
テーブル =>ファイル
データ =>ファイルの中身
テーブルは一度作成すれば、データを追記、更新、削除するには触る必要がない。
テーブルが存在したら動作しないようなロジックを組むしかないのでは?
■
>Duplicate entry '4' for key 'PRIMARY'
CREATE TABLEで、IDがプライマリーキーにしていると、
同じ数字のデータは、重複キーでエラーになります。
これも仕様通り。
プライマリーキーの属性を外す等の方法があります。
■
>MySQLのテーブルを上書き作成する方法
データの話なら、SQLは、insert文でなくて、update文。
テーブルの話なら、CREATE TABLEの代わりに、ALTER TABLE文。
でも、質問文はそういう意味でもなさそうな。
■
DBは何を使用しているのか不明ですが、
テーブルは、DBの管理ツールで作成しては?
データに関してのみ、javaからSQLでinsert、update、deleteを実行しては?
何をやりたいのかさっぱりわかりませんが。
MySQLのテーブルを上書き作成する方法のコードを教えてください
drop table if exists meibo;
単純にエラーを出ないようにしたいなら
create table if not exists meibo (id int, ...) ;
MySQLかSQLの本を読んだ方がいいよ。