2
私はYii 2で上記のコードを使用してバッチインサートを行うことができることを知っています。しかし、どうすればbatchInsertを使って重複したエントリを防ぐことができますか?私は重複した名前を持っている場合たとえば、私はデシベルでyii2の重複したbatchInsertを防ぐ
私はYii 2で上記のコードを使用してバッチインサートを行うことができることを知っています。しかし、どうすればbatchInsertを使って重複したエントリを防ぐことができますか?私は重複した名前を持っている場合たとえば、私はデシベルでyii2の重複したbatchInsertを防ぐ
つの可能なオプションを挿入したいいけない:
1)をデータベーステーブルにname
列に一意の制約を使用してください。
あなただけのクエリとキャッチ例外を実行しようとその方法:
try {
// Your query goes here
} catch (\yii\db\Exception) {
// Handle error
}
\yii\db\Exceptionは、より一般的なデータベース操作に関連する例外で、あなたはより具体的な\yii\db\IntegrityExceptionを使用することができます。
2)データを入力してクエリを実行する前に、PHPの配列から重複を除外します。アレイが構築される方法に応じて、あなたはそれを行うことができます:はい場合
foreach
では、この配列を構築する時に、 - 、それに要素を追加しそう - スキップします。私はPHPで重複を扱うことにしても、データベースのデータ構造と保護がスーパーフローではないため、最初のアプローチをお勧めします。