Как удалить первичный ключ в базе данных
Перейти к содержимому

Как удалить первичный ключ в базе данных

  • автор:

как удалить PRIMARY KEY?

как удалить PRIMARY KEY из столбца id ?

Отслеживать

задан 10 мар 2018 в 20:29

Aleksey exec Aleksey exec

379 1 1 золотой знак 3 3 серебряных знака 19 19 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

  1. Если id автоинкрементарное : Перед удалением ключа следует удалить свойство автоинкремента: ALTER TABLE comments MODIFY id INT NOT NULL
  2. А потом уже сам PRIMARY KEY (Ваш случай) ALTER TABLE comments DROP PRIMARY KEY;

Отслеживать

ответ дан 10 мар 2018 в 21:24

Vanya Avchyan Vanya Avchyan

4,950 1 1 золотой знак 17 17 серебряных знаков 42 42 бронзовых знака

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.1.5619

Удаление первичных ключей

Вы можете удалить первичный ключ в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

При удалении первичного ключа удаляется и соответствующий индекс. Это может быть кластеризованный индекс таблицы, в результате чего таблица станет кучей. Дополнительные сведения см. в статье Кучи (таблицы без кластеризованных индексов). Большинство таблиц должны иметь кластеризованный индекс. Сведения о повторном создании первичного ключа см. в разделе Создание первичных ключей.

Первичные ключи могут ссылаться на внешние ключи в другой таблице. Если на внешний ключ ссылается, сначала необходимо удалить ссылки на внешние ключи, а затем удалить первичный ключ. Дополнительные сведения см. в статье Primary and Foreign Key Constraints.

Разрешения

Требуется разрешение ALTER на таблицу.

Использование SQL Server Management Studio

Удаление ограничения первичного ключа с помощью обозревателя объектов

  1. В Обозревателе объектов разверните таблицу, которая содержит первичный ключ, и разверните узел Ключи.
  2. Щелкните ключ правой кнопкой мыши и выберите команду Удалить.
  3. В диалоговом окне Удаление объекта убедитесь в том, что выбран правильный ключ, и нажмите кнопку ОК.

Удаление ограничения первичного ключа с помощью конструктора таблиц

  1. В обозревателе объектов щелкните таблицу с первичным ключом правой кнопкой мыши и выберите пункт Конструктор.
  2. В сетке таблицы щелкните правой кнопкой строку с первичным ключом и выберите пункт Удалить первичный ключ , чтобы переключить параметр.

Примечание. Чтобы отменить это действие, закройте таблицу, не сохраняя изменений. Удаление первичного ключа не может быть отменено без потери всех других изменений, сделанных в таблице.

Использование Transact-SQL

Удаление ограничения первичного ключа

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.
  2. На стандартной панели выберите пункт Создать запрос.
  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере сначала определяется имя ограничения первичного ключа, а затем удаляется ограничение.
USE AdventureWorks2022; GO -- Return the name of primary key. SELECT name FROM sys.key_constraints WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'TransactionHistoryArchive'; GO -- Delete the primary key constraint. ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT PK_TransactionHistoryArchive_TransactionID; GO 

Следующие шаги

  • Инструкция ALTER TABLE (Transact-SQL)
  • sys.key_constraints (Transact-SQL)
  • Кластеризованные и некластеризованные индексы

Добавление и изменение первичного ключа таблицы в Access

Первичный ключ — это поле или набор полей со значениями, которые являются уникальными для всей таблицы. Значения ключа могут использоваться для обозначения всех записей, при этом каждая запись имеет отдельное значение ключа. Каждая таблица может содержать только один первичный ключ. Access может автоматически создавать поле первичного ключа при создании таблицы. Вы также можете самостоятельно указать поля, которые нужно использовать в качестве первичного ключа. В этой статье объясняется, как и зачем использовать первичные ключи.

Чтобы задать первичный ключ таблицы, откройте таблицу в режиме конструктора. Выберите нужное поле (или поля), а затем на ленте щелкните Ключевое поле.

Примечание: Эта статья относится только к классическим базам данных Access. В веб-приложениях Access и веб-базах данных первичный ключ для новых таблиц назначается автоматически. Несмотря на то что автоматические первичные ключи можно менять, делать это не рекомендуется.

В этой статье

  • Общие сведения о первичных ключах в Access
  • Определение первичного ключа в Access с помощью имеющихся полей
  • Удаление первичного ключа
  • Изменение первичного ключа в Access
  • Дополнительные сведения

Общие сведения о первичных ключах в Access

Используя поля первичных ключей, Access быстро связывает данные из нескольких таблиц и объединяет их понятным образом. Вы можете добавить поля первичных ключей в другие таблицы, чтобы ссылаться на таблицу, которая является источником первичного ключа. В других таблицах поля называются внешними ключами. Например, поле «ИД клиента» в таблице «Клиенты» также может отображаться в таблице «Заказы». В таблице «Клиенты» оно является первичным ключом. В таблице «Заказы» оно называется внешним ключом. Проще говоря, внешний ключ — это первичный ключ другой таблицы. Дополнительные сведения см. в статье Основные сведения о создании баз данных.

1. Первичный ключ

При переносе существующих данных в базу данных в них уже может существовать поле, которое можно использовать как первичный ключ. Часто в роли первичного ключа таблицы выступает уникальный идентификационный номер, например порядковый или инвентарный номер или код. Например, в таблице «Клиенты» для каждого клиента может быть указан уникальный код клиента. Поле кода клиента является первичным ключом.

Для первичного ключа автоматически создается индекс, ускоряющий выполнение запросов и операций. Кроме того, приложение Access проверяет наличие и уникальность значений в поле первичного ключа.

При создании таблицы в режиме таблицы Access автоматически создает первичный ключ с именем «Код» и типом данных «Счетчик».

Создание приемлемого первичного ключа

Чтобы правильно выбрать первичный ключ, следует учитывать несколько характеристик.

  • Ключ должен однозначно определять каждую строку.
  • В нем не должно быть пустых или отсутствующих значений — он всегда содержит значение.
  • Ключ крайне редко изменяется (в идеале — никогда).

Если не удается определить приемлемый ключ, создайте для него поле с типом данных «Счетчик». Поле «Счетчик» заполняется автоматически созданными значениями при первом сохранении каждой записи. Таким образом, поле «Счетчик» соответствует всем трем характеристикам приемлемого первичного ключа. Дополнительные сведения о добавлении поля «Счетчик» см. в статье Добавление поля счетчика в качестве первичного ключа.

Первичный ключ с типом данных

Поле с типом данных «Счетчик» является хорошим первичным ключом.

Примеры неудачных первичных ключей

Любое поле, не имеющее одной или нескольких характеристик подходящего первичного ключа, не следует выбирать в качестве первичного ключа. Ниже представлено несколько примеров полей, которые не годятся на роль первичного ключа в таблице «Контакты», и пояснения, почему их не следует использовать.

Неподходящий первичный ключ

Может быть не уникальным и может изменяться

SQL Primary Keys

В этом учебном материале вы узнаете, как создать и удалить первичный ключ в SQL, с синтаксисом и примерами.

Что такое первичный ключ в SQL?

В SQL первичный ключ — это отдельное поле или комбинация полей, которые однозначно определяют запись. Ни одно из полей, являющихся частью первичного ключа, не может содержать значение NULL. Таблица может иметь только один первичный ключ.
Вы можете использовать оператор CREATE TABLE или оператор ALTER TABLE для создания первичного ключа в SQL.

Создать первичный ключ (оператор CREATE TABLE)

Первичный ключ может быть создан при выполнении оператора CREATE TABLE в SQL.

Синтаксис

Синтаксис для создания первичного ключа с помощью оператора CREATE TABLE в SQL.

CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
.

CONSTRAINT constraint_name PRIMARY KEY (pk_col1, pk_col2, . pk_col_n)
);

CREATE TABLE table_name
(
column1 datatype CONSTRAINT constraint_name PRIMARY KEY,
column2 datatype [ NULL | NOT NULL ],
.
);

table_name Имя таблицы, которую вы хотите создать column1 , column2 Столбцы, которые вы хотите создать в таблице constraint_name Название первичного ключа pk_col1 , pk_col2 , . pk_col_n Столбцы, составляющие первичный ключ

Пример

Давайте посмотрим, как создать первичный ключ с помощью оператора CREATE TABLE в SQL. Мы начнем с очень простого, где наш первичный ключ состоит всего из одного столбца.
Например:

CREATE TABLE suppliers
( supplier_id int NOT NULL ,
supplier_name char (50) NOT NULL ,
contact_name char (50),
CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id)

В этом примере мы создали первичный ключ для таблицы suppliers , который называется sources_pk . Он состоит только из одного столбца — столбца supplier_id .
Мы могли бы использовать альтернативный синтаксис и создать этот же первичный ключ следующим образом.

CREATE TABLE suppliers
( supplier_id int CONSTRAINT suppliers_pk PRIMARY KEY ,
supplier_name char (50) NOT NULL ,
contact_name char (50)

Оба эти синтаксиса действительны при создании первичного ключа только с одним полем.
Если вы создаете первичный ключ, который состоит из 2-х или более столбцов, вы ограничены использованием только первого синтаксиса, в котором первичный ключ определен в конце оператора CREATE TABLE.
Например:

CREATE TABLE contacts
( last_name VARCHAR (30) NOT NULL ,
first_name VARCHAR (25) NOT NULL ,
birthday DATE ,
CONSTRAINT contacts_pk PRIMARY KEY (last_name, first_name)

Этот пример создает первичный ключ с именем contacts_pk , который состоит из комбинации столбцов last_name и first_name . Поэтому каждая комбинация last_name и first_name должна быть уникальной в таблице contacts .

Создать первичный ключ (оператор ALTER TABLE)

Если ваша таблица уже существует и вы хотите добавить к ней позже первичный ключ, вы можете использовать оператор ALTER TABLE для создания первичного ключа.

Синтаксис

Синтаксис для создания первичного ключа с помощью оператора ALTER TABLE в SQL.

ALTER TABLE table_name
ADD CONSTRAINT constraint_name
PRIMARY KEY (column1, column2, . column_n);

table_name Имя таблицы для изменения. Это таблица, к которой вы хотите добавить первичный ключ constraint_name Название первичного ключа column1 , column2 , . column_n Столбцы, составляющие первичный ключ

Пример

Давайте посмотрим, как создать первичный ключ с помощью оператора ALTER TABLE в SQL. Скажем так, у нас уже есть таблица suppliers , созданная в нашей базе данных. Мы могли бы добавить первичный ключ к таблице suppliers с помощью следующего оператора ALTER TABLE.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *