Serial primary key sql что это

Как установить автоинкрементный первичный ключ PostgreSQL?

Могут быть случаи, когда вы создаете и поддерживаете таблицы в PostgreSQL, когда вам нужны определенные значения для столбца, который создается по запросу. Это особенно верно для столбцов «id», которые действуют как первичный ключ таблицы. К счастью, псевдотип SERIAL позволяет сделать удобными целочисленные серии с автоматическим приращением. Серия — это тип объекта базы данных в PostgreSQL, который производит серию индексов или целых чисел. Последовательность PostgreSQL создает строку различных целых чисел, что делает ее пригодной для использования в качестве первичного ключа при создании новой таблицы. Мы продемонстрируем вам, что такое автоинкрементное меню в PostgreSQL, и в этом руководстве мы будем использовать псевдотип SERIAL.

Синтаксис

Общий синтаксис для создания первичного ключа с автоинкрементом следующий:

>> CREATE TABLE table_name ( id SERIAL ) ;

Давайте теперь посмотрим на объявление CREATE TABLE более подробно:

Чтобы понять концепцию автоинкремента, убедитесь, что PostgreSQL смонтирован и настроен в вашей системе, прежде чем продолжить работу с иллюстрациями в этом руководстве. Откройте оболочку командной строки PostgreSQL с рабочего стола. Добавьте имя сервера, на котором вы хотите работать, в противном случае оставьте значение по умолчанию. Напишите имя базы данных, которая находится на вашем сервере, на котором вы хотите работать. Если вы не хотите его менять, оставьте значение по умолчанию. Мы будем использовать «тестовую» базу данных, поэтому добавили ее. Вы также можете работать с портом по умолчанию 5432, но вы также можете его изменить. В конце концов, вы должны указать имя пользователя для выбранной вами базы данных. Оставьте значение по умолчанию, если вы не хотите его менять. Введите свой пароль для выбранного имени пользователя и нажмите «Enter» на клавиатуре, чтобы начать использовать командную оболочку.

Serial primary key sql что это. Vvedite svoj parol dlya vybrannogo imeni polzovatelya i nazhmite e1617952527969. Serial primary key sql что это фото. Serial primary key sql что это-Vvedite svoj parol dlya vybrannogo imeni polzovatelya i nazhmite e1617952527969. картинка Serial primary key sql что это. картинка Vvedite svoj parol dlya vybrannogo imeni polzovatelya i nazhmite e1617952527969

Использование серийного ключевого слова в качестве типа данных

Когда мы создаем таблицу, мы обычно не добавляем ключевое слово SERIAL в поле основного столбца. Это означает, что мы должны добавить значения в столбец первичного ключа при использовании оператора INSERT. Но когда мы используем ключевое слово SERIAL в нашем запросе при создании таблицы, нам не нужно добавлять значения основного столбца при вставке значений. Давайте взглянем на это.

Пример 1

Создайте таблицу «Тест» с двумя столбцами «id» и «name». Столбец «id» был определен как столбец первичного ключа, так как его тип данных — SERIAL. С другой стороны, столбец «имя» определяется как тип данных TEXT NOT NULL. Попробуйте выполнить команду ниже, чтобы создать таблицу, и таблица будет создана эффективно, как показано на изображении ниже.

>> CREATE TABLE Test ( id SERIAL PRIMARY KEY, name TEXT NOT NULL ) ;

Serial primary key sql что это. Poprobujte vypolnit komandu nizhe chtoby sozdat tablitsu e1617952594505. Serial primary key sql что это фото. Serial primary key sql что это-Poprobujte vypolnit komandu nizhe chtoby sozdat tablitsu e1617952594505. картинка Serial primary key sql что это. картинка Poprobujte vypolnit komandu nizhe chtoby sozdat tablitsu e1617952594505

Вставим несколько значений в столбец «имя» вновь созданной таблицы «ТЕСТ». Мы не будем добавлять никакого значения в столбец «id». Вы можете видеть, что значения были успешно вставлены с помощью команды INSERT, как указано ниже.

Serial primary key sql что это. Vstavim neskolko znachenij v stolbets imya vnov sozdannoj tablitsy e1617952664610. Serial primary key sql что это фото. Serial primary key sql что это-Vstavim neskolko znachenij v stolbets imya vnov sozdannoj tablitsy e1617952664610. картинка Serial primary key sql что это. картинка Vstavim neskolko znachenij v stolbets imya vnov sozdannoj tablitsy e1617952664610

Пришло время проверить записи таблицы «Тест». Попробуйте выполнить приведенную ниже инструкцию SELECT в командной оболочке.

Из выходных данных ниже вы можете заметить, что столбец «id» автоматически содержит некоторые значения, хотя мы не добавляли никаких значений из команды INSERT из-за типа данных SERIAL, который мы указали для столбца «id». Вот как тип данных SERIAL работает сам по себе.

Serial primary key sql что это. Iz vyhodnyh dannyh nizhe vy mozhete zametit chto stolbets e1617952746838. Serial primary key sql что это фото. Serial primary key sql что это-Iz vyhodnyh dannyh nizhe vy mozhete zametit chto stolbets e1617952746838. картинка Serial primary key sql что это. картинка Iz vyhodnyh dannyh nizhe vy mozhete zametit chto stolbets e1617952746838

Пример 2

Другой способ проверить значение столбца типа данных SERIAL — использовать ключевое слово RETURNING в команде INSERT. Объявление ниже создает новую строку в таблице «Тест» и дает значение для поля «id»:

>> INSERT INTO Test ( name ) VALUES ( ‘Hassam’ ) RETURNING id ;

Serial primary key sql что это. Drugoj sposob proverit znachenie stolbtsa tipa dannyh SERIAL e1617952836877. Serial primary key sql что это фото. Serial primary key sql что это-Drugoj sposob proverit znachenie stolbtsa tipa dannyh SERIAL e1617952836877. картинка Serial primary key sql что это. картинка Drugoj sposob proverit znachenie stolbtsa tipa dannyh SERIAL e1617952836877

Проверив записи таблицы «Тест» с помощью запроса SELECT, мы получили следующий результат, как показано на изображении. Пятая запись оперативно добавлена ​​в таблицу.

Пример 3

Альтернативная версия указанного выше запроса на вставку использует ключевое слово DEFAULT. Мы будем использовать имя столбца «id» в команде INSERT, а в разделе VALUES мы дадим ему ключевое слово DEFAULT в качестве его значения. Приведенный ниже запрос будет работать так же после выполнения.

Serial primary key sql что это. Alternativnaya versiya ukazannogo vyshe zaprosa na vstavku ispolzuet klyuchevoe slovo e1617952919538. Serial primary key sql что это фото. Serial primary key sql что это-Alternativnaya versiya ukazannogo vyshe zaprosa na vstavku ispolzuet klyuchevoe slovo e1617952919538. картинка Serial primary key sql что это. картинка Alternativnaya versiya ukazannogo vyshe zaprosa na vstavku ispolzuet klyuchevoe slovo e1617952919538

Давайте еще раз проверим таблицу, используя запрос SELECT следующим образом:

Вы можете видеть из вывода ниже, новое значение было добавлено, а столбец «id» был увеличен по умолчанию.

Источник

Sysadminium

База знаний системного администратора

Первичный и внешний ключ SQL

Из статьи вы узнаете, что такое первичный и внешний ключ в SQL. Зачем они нужны и как их использовать. Я покажу на практике как их использовать в PostgreSQL.

Теория

Первичный ключ это одно или несколько полей в таблице. Он необходим для уникальной идентификации любой строки. Первичный ключ накладывает некоторые ограничения:

К первичному ключу предъявляют следующее требование:

Первичный ключ может быть:

Я сам не имею большого опыта работы с SQL, но в книгах пишут что лучше использовать естественный первичный ключ. Почему именно так, я пока ответить не смогу.

Связь между таблицами

Первостепенная задача первичного ключа – это уникальная идентификация каждой строки. Но первичный ключ может решить ещё одну задачу. В базе данных есть возможность связывания нескольких таблиц. Для такой связи используют первичный и внешний ключ sql. В одной из таблиц создают внешний ключ, который ссылается на поля другой таблицы. Но внешний ключ не может ссылаться на любые поля другой таблицы, а может ссылаться только на определённые:

Например, у вас есть таблица “Ученики” (pupils) и выглядит она следующим образом:

ФИО
full_name
Возраст
age
Класс
class
Иванов Иван Иванович15
Сумкин Фёдор Андреевич15
Петров Алексей Николаевич14
Булгаков Александр Геннадьевич14

Таблица pupils

И есть таблица “Успеваемость” (evaluations):

Предмет
item
ФИО
full_name
Оценка
evaluation
Русский языкИванов Иван Иванович4
Русский языкПетров Алексей Николаевич5
МатематикаБулгаков Александр Геннадьевич3
ЛитератураСумкин Фёдор Андреевич5

Таблица evaluations

В обоих таблицах есть одинаковое поле: ФИО. При этом в таблице “Успеваемость” не может содержаться ФИО, которого нет в таблице “ Ученики“. Ведь нельзя поставить ученику оценку, которого не существует.

Первичным ключом в нашем случае может выступать поле “ФИО” в таблице “ Ученики“. А внешним ключом будет “ФИО” в таблице “Успеваемость“. При этом, если мы удаляем запись о каком-то ученике из таблицы “Ученики“, то все его оценки тоже должны удалиться из таблицы “Успеваемость“.

Ещё стоит заметить что первичный ключ в PostgreSQL автоматически создает индекс. Индекс ускоряет доступ к строкам таблицы и накладывает ограничение на уникальность. То есть двух Ивановых Иванов Ивановичей у нас не может существовать. Чтобы это обойти можно использовать:

Теперь давайте попробуем создать эти две таблички и попробуем с ними поработать.

Практика

Создадим базу данных school и подключимся к ней. Затем создадим таблицу pupils. Про создание таблиц я уже писал тут, а про типы данных тут. Затем посмотрим на табличку с помощью команды \d:

Как вы могли заметить, первичный ключ создаётся с помощью конструкции PRIMARY KEY (имя_поля) в момент создания таблицы.

Вывод команды \d нам показал, что у нас в таблице есть первичный ключ. А также первичный ключ сделал два ограничения:

Индекс в свою очередь наложил ещё одно ограничение – записи в поле full_name должны быть уникальны.

Следующим шагом создадим таблицу evaluations:

В этом случае из вывода команды \d вы увидите, что создался внешний ключ (Foreign-key), который относится к полю full_name и ссылается на таблицу pupils.

Внешний ключ создается с помощью конструкции FOREIGN KEY (имя_поля) REFERENCES таблица_на_которую_ссылаются.

Создавая внешний ключ мы дополнительно указали опцию ON DELETE CASCADE. Это означает, что при удалении строки с определённым учеником в таблице pupils, все строки связанные с этим учеником удалятся и в таблице evaluations автоматически.

Заполнение таблиц и работа с ними

Заполним таблицу “pupils“:

Заполним таблицу “evaluations“:

А теперь попробуем поставить оценку не существующему ученику:

Как видите, мы получили ошибку. Вставлять (insert) или изменять (update) в таблице evaluations, в поле full_name можно только те значения, которые есть в этом же поле в таблице pupils.

Теперь удалим какого-нибудь ученика из таблицы pupils:

И посмотрим на строки в таблице evaluations:

Как видно, строка с full_name равная ‘Иванов Иван Иванович’ тоже удалилась. Если бы у Иванова было бы больше оценок, они всё равно бы все удалились. За это, если помните отвечает опция ON DELETE CASCADE.

Попробуем теперь создать ученика с точно таким-же ФИО, как у одного из существующих:

Ничего не вышло, так как такая запись уже существует в поле full_name, а это поле у нас имеет индекс. Значит значения в нём должны быть уникальные.

Составной первичный ключ

Есть большая вероятность, что в одной школе будут учиться два ученика с одинаковым ФИО. Но меньше вероятности что эти два ученика будут учиться в одном классе. Поэтому в качестве первичного ключа мы можем взять два поля, например full_name и class.

Давайте удалим наши таблички и создадим их заново, но теперь создадим их используя составной первичный ключ:

Как вы могли заметить, разница не большая. Мы должны в PRIMARY KEY указать два поля вместо одного. И в FOREIGN KEY точно также указать два поля вместо одного. Ну и не забудьте в таблице evaluations при создании добавить поле class, так как его там в предыдущем варианте не было.

Теперь посмотрим на структуры этих таблиц:

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

Теперь мы можем учеников с одинаковым ФИО вбить в нашу базу данных, но при условии что они будут учиться в разных классах:

И также по второй таблице:

Удаление таблиц

Кстати, удалить таблицу, на которую ссылается другая таблица вы не сможете:

Поэтому удалим наши таблицы в следующем порядке:

Либо мы могли удалить каскадно таблицу pupils вместе с внешним ключом у таблицы evaluations:

Как видно из примера, после каскадного удаления у нас вместе с таблицей pupils удался внешний ключ в таблице evaluations.

Создание связи в уже существующих таблицах

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

Вначале удалим оставшуюся таблицу:

И сделаем таблицы без ключей:

Теперь создадим первичный ключ в таблице pupils:

И создадим внешний ключ в таблице evaluations:

Посмотрим что у нас получилось:

В этой статье я рассказал про первичный и внешний ключ sql. А также продемонстрировал, как можно создать связанные между собой таблицы и как создать связь между уже существующими таблицами. Вы узнали, какие ограничения накладывает первичный ключ и какие задачи он решает. И вдобавок, какие требования предъявляются к нему. Вместе с тем я показал вам как работать с составным первичным ключом.

Дополнительно про первичный и внешний ключ sql можете почитать тут.

Источник

SQL ПЕРВИЧНЫЙ КЛЮЧ

ОСНОВНОЙ КЛЮЧ

Тем не менее, SQL поддерживает первичные ключи напрямую с ограничением PRIMARY KEY.

Serial primary key sql что это. primary key. Serial primary key sql что это фото. Serial primary key sql что это-primary key. картинка Serial primary key sql что это. картинка primary key

Функционально это то же самое, что и ограничение UNIQUE, за исключением того, что для данной таблицы можно определить только один PRIMARY KEY. PRIMARY KEY не допускает значения NULL.

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

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

Первичные ключи могут быть указаны во время CREATING TABLE или во время изменения структуры существующей таблицы с помощью инструкции ALTER TABLE.

Это ограничение является комбинацией ограничения NOT NULL и ограничения UNIQUE. Это ограничение гарантирует, что конкретный столбец или комбинация из двух или более столбцов для таблицы имеют уникальную идентификацию, которая помогает легче и быстрее найти конкретную запись в таблице.

Синтаксис:

Параметры:

названиеОписание
table_nameИмя таблицы, в которой хранятся данные.
column1, column2Наименование столбцов таблицы.
тип данныхЭто char, varchar, целое число, десятичное число, дата и многое другое.
размерМаксимальная длина столбца таблицы.

Хорошая практика для первичных ключей в таблицах

Пример:

Предположим, мы собираемся создать таблицу с именем ‘agent1’. Он содержит столбцы и типы данных, которые показаны ниже. Для каждой строки таблицы ‘agent1’ требуется идентифицировать каждого агента с помощью уникального кода, поскольку имена двух или более агентов в городе страны могут совпадать.

Так что не стоит создавать PRIMARY KEY для ‘agent_name’. ‘Agent_code’ может быть единственным и исключительным выбором для PRIMARY KEY для этой таблицы.

Имя поляТип данныхРазмерДесятичные знакиНОЛЬскованность
agent_codeголец6нетОСНОВНОЙ КЛЮЧ
имя агентаголец40нет
рабочая областьголец35да
комиссиядесятичный102да
номер телефонаголец17да

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

Ограничение первичного ключа на уровне столбца:

Код SQL:

Ограничение первичного ключа на уровне таблицы:

Код SQL:

SQL CREATE TABLE с основным ограничением

SQL PRIMARY KEY CONSTRAINT является комбинацией ограничения NOT NULL и ограничения UNIQUE. Это ограничение гарантирует, что конкретный столбец или комбинация из двух или более столбцов для таблицы имеют уникальную идентификацию, которая помогает легче и быстрее найти конкретную запись в таблице.

Пример :

В следующем примере создается таблица. Вот имя поля и типы данных:

Имя поляТип данныхРазмерДесятичные знакиНОЛЬскованность
agent_codeголец6нетОСНОВНОЙ КЛЮЧ
имя агентаголец40нет
рабочая областьголец35да
комиссиядесятичный102да
номер телефонаголец17да

можно использовать следующий оператор SQL:

Код SQL:

Чтобы увидеть структуру созданной таблицы:

Код SQL:

Serial primary key sql что это. creating table using primary key constraint. Serial primary key sql что это фото. Serial primary key sql что это-creating table using primary key constraint. картинка Serial primary key sql что это. картинка creating table using primary key constraint

SQL CREATE TABLE с первичным ключом и уникальным ограничением

В следующем примере создается таблица. Вот имя поля и типы данных:

Имя поляТип данныхРазмерДесятичные знакиНОЛЬскованность
cust_codeголец6нетОСНОВНОЙ КЛЮЧ
CUST_NAMEголец25нетУНИКАЛЬНАЯ
cust_cityголец25нет
классцелое числода
agent_codeголец6нет

можно использовать следующий оператор SQL:

Код SQL:

Чтобы увидеть структуру созданной таблицы:

Код SQL:

Serial primary key sql что это. creating table using primary key constraint1. Serial primary key sql что это фото. Serial primary key sql что это-creating table using primary key constraint1. картинка Serial primary key sql что это. картинка creating table using primary key constraint1

SQL CREATE TABLE с PRIMARY KEY CONSTRAINT для большего количества столбцов

В следующем разделе мы обсудим использование SQL PRIMARY KEY CONSTRAINT вместе с оператором CREATE TABLE для двух или более столбцов.

Пример:

В следующем примере создается таблица. Таблица должна содержать ПЕРВИЧНЫЙ КЛЮЧ с комбинацией двух столбцов ‘cust_code’ и ‘cust_city’. Вот имя поля и типы данных:

Имя поляТип данныхРазмерДесятичные знакиНОЛЬскованность
cust_codeголец6нетОСНОВНОЙ КЛЮЧ
CUST_NAMEголец25нет
cust_cityголец25нетОСНОВНОЙ КЛЮЧ
классцелое числода
agent_codeголец6нет

можно использовать следующий оператор SQL:

Код SQL:

Чтобы увидеть структуру созданной таблицы:

Код SQL:

Serial primary key sql что это. creating table using primary key constraint in more columns. Serial primary key sql что это фото. Serial primary key sql что это-creating table using primary key constraint in more columns. картинка Serial primary key sql что это. картинка creating table using primary key constraint in more columns

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: Создать таблицу
Далее: Внешний ключ

Источник

PRIMARY KEY

Первичный ключ PRIMARY KEY

PRIMARY KEY — первичный ключ, ограничение, позволяющее однозначно идентифицировать каждую запись в таблице SQL.

PRIMARY KEY Oracle
Первичный Ключ (PRIMARY KEY) может ограничивать таблицы или их столбцы. Это ограничение работает так же как и ограничение UNIQUE. Но следует учитывать различие между первичными ключами и уникальностью столбцов в способе их использования с внешними ключами. Первичные ключи не могут позволять значений NULL. Это означает что, подобно полям в ограничении UNIQUE, любое поле, используемое в ограничении PRIMARY KEY, должно уже быть обьявлено NOT NULL.

PRIMARY KEY Oracle. Пример №1.
Пример создания таблицы SQL с ограничением PRIMARY KEY:

CREATE TABLE Student
( Kod_stud integer NOT NULL PRIMARY KEY,
Fam char(30) NOT NULL UNIQUE,
Adres char(50),
Ball decimal);

Лучше всего помещать ограничение PRIMARY KEY в поле (или в поля), которое будет образовывать уникальный идентификатор строки, и сохранить ограничение UNIQUE для полей которые должны быть уникальными логически (такие как номера телефона или поле sname), а не для идентификации строк. Ограничение PRIMARY KEY может также быть применено для многочисленных полей, составляющих уникальную комбинацию значений:

PRIMARY KEY Oracle. Пример №2.

CREATE TABLE Student
( Fam char (30) NOT NULL,
Im char (30) NOT NULL
Adres char (50),
PRIMARY KEY (Fam, Im));

PRIMARY KEY MySQL

PRIMARY KEY SQL / MySQL. Пример №3.

CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id));

PRIMARY KEY SQL / MySQL. Пример №4.

CREATE TABLE `ad_packages` (
`id` int(111) NOT NULL auto_increment,
`title` varchar(132) NOT NULL default »,
`price` float NOT NULL default ‘0’,
`type` varchar(22) NOT NULL default »,
`c_type` enum(‘cash’,’points’,’rur’) NOT NULL default ‘cash’,
PRIMARY KEY (`id`)
);

PRIMARY KEY SQL / MySQL. Пример №5.

CREATE TABLE `gamestat` (
`id` int(11) NOT NULL auto_increment,
`game` varchar(10) NOT NULL default ‘tuz’,
`stavok` int(11) NOT NULL default ‘0’,
`usd` float NOT NULL default ‘0’,
`rur` float NOT NULL default ‘0’,
`point` float NOT NULL default ‘0’,
`bank_usd` decimal(12,2) NOT NULL default ‘0.00’,
`bank_rur` decimal(12,2) NOT NULL default ‘0.00’,
`bank_point` decimal(12,2) NOT NULL default ‘0.00’,
PRIMARY KEY (`id`)
);

Вы должны войти, чтобы оставить комментарий.

Источник

Система управления базами данных SQLite. Изучаем язык запросов SQL и реляционные базы данных на примере библиотекой SQLite3. Курс для начинающих.

Часть 11.3: Первичные ключи в базах данных SQLite: PRIMARY KEY. Ограничение первичного ключа

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы разобрались с ограничениями уровня столбца и узнали, какие возможности есть у СУБД для поддержания целостности данных на уровне таблицы. Теперь давайте более подробно поговорим про ограничения уровня таблицы и первым ограничение, которое мы рассмотрим, будет ограничение первичного ключа или просто PRIMARY KEY.

Первичные ключи в базах данных SQLite: PRIMARY KEY. Ограничение первичного ключа.

В теории баз данных ключ или ключевой атрибут — это столбец, который позволяет однозначно идентифицировать таблицу в базе данных. На практике, ни одна СУБД в мире не знает о таком столбце и не знает теории баз данных. На практике есть первичный ключ, который является правилом, которое SQLite ни когда не нарушит. SQLite будет следить всегда за тем, чтобы в столбце PRIMARY KEY были всегда уникальные и вечные значения.

В этой записи мы рассмотрим ограничения первичного ключа в базах данных SQLite в теории и на практике, так же узнаем, почему первичный ключ это не только правило базы данных, но еще и индекс, а так же поговорим о том, как реализовать составной первичный ключ для таблицы базы данных SQLite3

Первичный ключ, как ограничение уровня таблицы в базах данных SQLite. PRIMARY KEY в SQLIte3

Первичный ключ, это не только ключевой атрибут, который идентифицирует таблицу в базе данных и даже не только обязательное условие второй нормальной формы, а, соответственно, и третьей нормальной формы. Первичный ключ или столбец PRIMARY KEY – это ограничение уровня таблицы для любой реляционной СУБД.

Ограничение уровня таблицы – это правило, которое никогда не должна нарушать ни одна СУБД и не должна никому давать это делать. Первичный ключ или PRIMARY KEY в базах данных SQLite – это столбец, значения которого должны быть уникальными и вечными, и что бы не произошло, что бы не случилось, SQLite никогда не нарушит правило уникальности и вечности первичного ключа.

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

Когда мы создаем первичный ключ, как ограничение таблицы, то вместо PRIMARY KEY мы вправе использовать конструкцию UNIQUE KEY, SQLite это позволяет и никаких проблем с таким подходом у вас не будет.

Помимо всего прочего, первичный ключ в базе данных SQLite, вернее столбец, который мы назначили, как PRIMARY KEY, является еще и индексом таблицы. Благодаря индексам таблицы операция выборки данных из базы данных при помощи команды SELECT происходит значительно быстрее, но место на диске база данных начинает занимать больше

Вывод: первичный ключ в базах данных SQLite3 или PRIMARY KEY – это правила, которые нельзя нарушать: правила уникальности и вечности значений столбца PRIMARY KEY. Так же первичный ключ является индексом таблицы в базе данных SQLite. Столбец, который объявлен, как PRIMARY KEY – это индекс, которому мы можем даже дать имя.

Пример использования первичного ключа в SQLite. Пример PRIMARY KEY в SQLite

Мы разобрались в теории, что собой представляет первичный ключ в реляционных базах данных, а также выяснили, что для создания первичного ключа необходимо использовать конструкцию PRIMARY KEY, тогда SQLite3 поймет, что данный столбец является первичным ключом, а его значения должны быть уникальными и вечными.

Давайте теперь на практике посмотрим, как первичный ключ может обеспечить целостность данных в базе данных и посмотрим, как в SQLite можно объявить столбец с ограничением PRIMARY KEY.

Источник

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

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