mssql Cannot update identity column

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
malenkymuk
Сообщения: 22
Зарегистрирован: 2013.03.22, 16:20

mssql Cannot update identity column

Сообщение malenkymuk »

Yii 1.1.13

Код: Выделить всё

CREATE TABLE [dbo].[name](
   [id] [int] IDENTITY(1,1) NOT NULL,
   [name] [nvarchar](50) NOT NULL,
   CONSTRAINT [PK_name] PRIMARY KEY CLUSTERED
Model (gii):

Код: Выделить всё

class Name extends CActiveRecord
{
        public static function model($className=__CLASS__)
        {
                return parent::model($className);
        }

        public function tableName()
        {
                return 'WebSite.dbo.name';
        }

        public function rules()
        {
                return array(
                        array('name', 'required'),
                );
        }

        public function relations()
        {
                return array(
                );
        }

}
Контроллер:

Код: Выделить всё

public function actionUpdate($id)
        {
                $model=$this->loadModel($id);

                if(isset($_POST['Name']))
                {
                        $model->attributes=$_POST['Name'];
                        if($model->save())
                                $this->redirect(array('view','id'=>$model->id));
                }

                $this->render('update',array(
                        'model'=>$model,
                ));
        } 
_form.php

Код: Выделить всё

echo $form->textField($model,'name');
echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); 
Получаю:
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 20018 Cannot update identity column 'id'. [20018] (severity 5) [(null)]
Yii создает такой SQL:

Код: Выделить всё

UPDATE [WebSite].[dbo].[name] SET [id]=:yp0,
[name]=:yp1 WHERE [WebSite].[dbo].[name].[id]=2
Хотя я не указываю в форме поле id.

Это можно оформлять как баг или нет?
Что это такое http://code.google.com/p/yii/issues/detail?id=2574 ?
Ответить