У меня есть существующая таблица под названием Persion
. В этой таблице у меня есть 5 столбцов:
- persionId
- PNAME
- PMID
- Pdescription
- Pamt
Когда я создал эту таблицу, я установил PersionId
и Pname
в качестве первичного ключа .
Теперь я хочу включить еще один столбец в первичный ключ - PMID. Как я могу написать ALTER
заявление, чтобы сделать это? (У меня уже есть 1000 записей в таблице)
personId
в вашей таблице. Это, в свою очередь, означает, что если вы присоединитесь из таблицы типа транзакции (много) к этой таблице только по этому ключу, вы получите дубликаты записей, что приведет к «двойному учету» записей транзакций.Ответы:
снять ограничение и воссоздать его
редактировать:
Вы можете найти имя ограничения, используя запрос ниже:
источник
Я думаю, что-то вроде этого должно работать
источник
это лучшее решение, потому что у вас есть контроль над именами primary_key.
Это лучше, чем просто использовать
который выдает случайные имена и может вызвать проблемы при написании сценариев или сравнении баз данных
источник
Если вы добавите ограничение первичного ключа
например:
источник
В вашей таблице уже есть первичный ключ. Вы не можете просто добавить первичный ключ, иначе это приведет к ошибке. Потому что есть один первичный ключ для таблицы SQL.
Сначала вы должны удалить свой старый первичный ключ.
MySQL:
SQL Server / Oracle / MS Access:
Во-вторых, добавить первичный ключ.
MySQL / SQL Server / Oracle / MS Access:
или лучше ниже
Это может установить имя ограничения разработчиком. Легче поддерживать стол.
Я немного запутался, когда посмотрел все ответы. Поэтому я изучаю некоторые документы, чтобы найти каждую деталь. Надеюсь, что этот ответ может помочь другим начинающим SQL.
Ссылка: https://www.w3schools.com/sql/sql_primarykey.asp
источник
Ограничение PRIMARY KEY однозначно идентифицирует каждую запись в таблице базы данных. Первичные ключи должны содержать значения UNIQUE, а столбец не может содержать значения NULL.
источник
Necromancing.
На всякий случай, если у кого-то есть такая же хорошая схема для работы, как и у меня ...
Вот как это сделать правильно:
В этом примере имя таблицы - dbo.T_SYS_Language_Forms, а имя столбца - LANG_UID.
источник
Пожалуйста, попробуйте это
источник
Попробуйте использовать этот код:
источник
источник