Как вставить строку со столбцом идентификаторов с помощью Datagrip?

Пытаясь использовать Datagrip, я столкнулся с серьезным блокировщиком.

У меня есть таблица Sql Azure с полем первичного ключа «Id», которое отправляется как Identity(1,1). В Datagrip столбец отображается как Id INT (auto increment).

Я кликнул по таблице и открыл редактор таблиц. Затем я добавил новую запись, но оставил столбец Id пустым. Однако, когда я собираюсь зафиксировать свои изменения, он говорит, что не может вставить явные значения для столбца идентификаторов.

Нельзя ли добавить новые записи в Datagrip с помощью столбца идентификаторов?


person KallDrexx    schedule 20.07.2016    source источник


Ответы (2)


Похоже, что проблема была решена пару лет назад.

введите здесь описание изображения

person Vasilii Chernov    schedule 02.06.2021

Если вы хотите добавить запись со столбцом идентификации, вам необходимо включить IDENTITY_INSERT для конкретной таблицы.

https://msdn.microsoft.com/en-AU/library/ms188059.aspx

SET IDENTITY_INSERT tblYourTable ON
INSERT INTO tblYourTable (ID, Name...) VALUES (1, 'Foo', ...)
SET IDENTITY_INSERT tblYourTable OFF

Стоит отметить, что это не то, что вы должны оставить, поскольку ожидается, что вы захотите сделать это только для нескольких записей. Например, для импорта предыдущих данных.

person pwae    schedule 24.07.2016
comment
Мало того, что это вообще не использует инструментарий Datagrip, он чрезвычайно подвержен ошибкам и может вызывать исключения, если я пытаюсь вставить данные в производственную базу данных. Кроме того, если я делаю оператор вставки вручную, я мог бы просто оставить столбец идентификатора и не иметь дело с identity_insert. - person KallDrexx; 25.07.2016