あなたのテーブルに重複したエントリを挿入しようとしています。おそらくusername
列。これを回避することはできますが、まだテーブルにないusername
の値を入力するか、テーブルからレコードを削除して再挿入することができます。あなたの質問にusers
テーブルの定義を含めると、より具体的になることができますが、それはあなたが持っている基本的な問題です。
あなたのテーブルは主キーとしてid
列を入力し、あなたはこのように、あなたの挿入に新しい値を指定しない数値で定義されている場合:
insert into users (id, username, password) values (1, 'joeuser', 'password');
代わりに、あなたはあなたの中に持っている何を質問:
insert into users (username, password) values ('joeuser', 'password');
デフォルトの挿入値としてnull
または0
を持つことになりますどちらか挿入されたレコード。挿入が実行されるたびに同じ値がid
列に挿入されます。これにより、重大な値のエラーが発生します。 auto-increment
はいつでもあなたが挿入を実行し、それがデフォルト値として使用可能な次の整数を使用しますid
の値を指定しないということを伝えるようid
列を定義し、その周りを取得するには
。
他のアプローチは、各INSERT文の実行にid
の新しい値を指定することですので、のように:このような表について
insert into users (id, username, password) values (1, 'joeuser', 'password');
insert into users (id, username, password) values (2, 'daveuser', 'password');
insert into users (id, username, password) values (3, 'janeuser', 'password');
、自動インクリメントを使用するための最良の方法です行く。
どのようなエラーが表示されますか? – Mureinik
最初に "接続されています"というメッセージが表示されます。エラーが発生しました。 "接続されていますか?" PRIMARYのキーが0です。 –
これは、あなたの挿入に違反しています。おそらく、あなたの 'username'カラム。その列に値を重複させることはできません。 – gmiley