2017-05-30 24 views
-1

The Story:
私はYii2プロジェクトにSQL Serverを使用し、マイグレーションに接続して正常に実行することについて研究しています。
UNIQUE KEY制約 'UQ__user__xxx'に違反しています。オブジェクト 'dbo.user'に重複キーを挿入できません。重複するキーの値は(<NULL>)

問題:
私は私のデータベースに私のyii2プロジェクトから新しいユーザーを登録したいが、私は、SQL Serverからのこのエラーを得ました。

UNIQUE KEY制約 'UQ__user__xxx'の違反。オブジェクト 'dbo.user'に重複キーを挿入できません。重複キーの値は (NULL)です。ここ

クエリ

INSERT INTO [user] 
      ([username], 
      [auth_key], 
      [password_hash], 
      [email], 
      [user_type], 
      [status], 
      [created_at], 
      [updated_at]) 
VALUES  
('andhy', 
'EIrQRO31WLuDGDPoSIkz_wTWEzjGzIK0', 
'$2y$13$1cWynvtIyDA.7I3nyvKqmuq6KT5XPsNc6LaJ04MrWmiNpqP2.vraS', 
'[email protected]', 
'backend', 
10, 
1496125394, 
1496125394) 

のみユニークキー[ID](PKなど)、[ユーザー名]、[メール]、[password_reset_token]

実行された私は、[ID]フィールド必須だと思いますクエリで選択してIDENTITY_INSERTをONに設定しますが、私にとっては良い解決策はありません。

私にこの仲間を解決するための正しい方法を教えてください。ありがとう

+0

エラーメッセージはかなりわかりやすく、重複するキーを入力できないという制約があります。 – DavidG

+0

私はちょうどユーザーテーブルを作成するためにyii2からのデフォルトの移行を使用しています –

+0

@DavidG私はエラーの意味を知っています。 [username]、[email]、[password_reset_token]フィールドに重複するエントリがないことを確認しました。 [id]フィールドが設定されていない場合、[id]フィールドのみがMySQLのように自動インクリメントを実行できません。 –

答えて

0

password_reset_tokenがnullとして挿入されています。

0

ユーザテーブルのIDに自動インクリメントティック列があることを確認してください。 これは、次の操作のために以前のIDが格納されていた同じ値をとります。

関連する問題