2016-05-11 9 views
0

yii2アプリケーションに複数のユーザーを追加できないのはなぜですか?私はMicrosoft SQL Serverを使用しており、yii2アプリのサインアップコードはまだ変更されていません。ユーザーテーブルにレコードがない場合、yiiのサインアップページを使用してユーザーを追加できます。 これはDBスクリプトですMicrosoft SQL Serverユーザーデータベースに挿入できません

USE [IBR] 
GO 

/****** Object: Table [dbo].[user] Script Date: 11/05/2016 16.51.02 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

CREATE TABLE [dbo].[user](
    [id] [int] IDENTITY(1,1) NOT NULL, 
    [username] [nvarchar](255) NOT NULL, 
    [auth_key] [nvarchar](32) NOT NULL, 
    [password_hash] [nvarchar](255) NOT NULL, 
    [password_reset_token] [nvarchar](255) NULL, 
    [email] [nvarchar](255) NOT NULL, 
    [status] [smallint] NOT NULL DEFAULT ((10)), 
    [created_at] [int] NOT NULL, 
    [updated_at] [int] NOT NULL, 
PRIMARY KEY CLUSTERED 
(
    [id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], 
UNIQUE NONCLUSTERED 
(
    [password_reset_token] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], 
UNIQUE NONCLUSTERED 
(
    [email] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], 
UNIQUE NONCLUSTERED 
(
    [username] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

これはスクリーンショットです。 error while signup for 2nd times

+2

エラーから理解できなかったことはありますか?エラー自体は、ユニークな列に重複する値を使用していることを示しています –

+0

クエリがテーブルのユニーク制約に違反しているようです。ユーザー名「Tari」のエントリが既にテーブルにあるかどうかを確認してください。 – bmsqldev

+0

プライマリキーにデータをまったく挿入していないようです。あなたのテーブル構造をチェックし、そのPKがどこにあるのか調べてください。一意の値を挿入する必要がありますが、NULLを挿入しようとしているけれども、既にそこに1つの値があります。 –

答えて

0

[password_reset_token]列に問題があるようです。

この列には一意制約がありますが、NULL値が許可されていて、この文にデータを挿入していないため、重複キーとしてNULLが表示されます。このフィールドの一意制約を削除するか、このフィールドに一意のデータを挿入するかのどちらかを調べることができます。

+0

しかし、その列の内容がnullでない場合は、その列を一意にする必要があります。したがって、パスワードがリセットされていない場合、その列の値はNULLですが、パスワードがリセットされると、その列の値はNULLでなく一意ではありません。出来ますか? – Kurniawantaari

+0

その列に固有の制約はありません。その数字を設定する更新ステートメントではできますが、テーブル自体には設定できません。 –

関連する問題