πŸ”‘ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key MySQL: простой способ ΠΈ инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ”‘

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key Π² MySQL, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ primary key с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ALTER TABLE.
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ primary key с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ALTER TABLE ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°:

-- Π¨Π°Π³ 1: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ primary key

ALTER TABLE table_name DROP PRIMARY KEY;
-- Π¨Π°Π³ 2: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key

ALTER TABLE table_name ADD PRIMARY KEY (column1, column2);

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "table_name" Π½Π° имя вашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ "column1, column2" Π½Π° ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ primary key.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key Π² MySQL

Primary key (ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡) Π² MySQL - это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, которая ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Однако, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key Π² MySQL с использованиСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°.

ИспользованиС ALTER TABLE

Для измСнСния primary key Π² MySQL ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ primary key.
  2. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ старый primary key.
  3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ primary key.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΌ primary key. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ для этого. НапримСр, допустим Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° "users" с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ "id", "name" ΠΈ "email", Π³Π΄Π΅ "id" являСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ primary key. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ "email". Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ primary key Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "email".

ALTER TABLE users ADD PRIMARY KEY (email);

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "email" Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ "users".

2. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ старого primary key

ПослС опрСдСлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ старый primary key. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ primary key Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "id". Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ALTER TABLE users DROP PRIMARY KEY;

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния primary key ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ "users".

3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key

ПослС удалСния старого primary key ΠΈ опрСдСлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ primary key. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ создали Π½ΠΎΠ²Ρ‹ΠΉ primary key Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "email", поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ALTER TABLE users ADD PRIMARY KEY (email);

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key ΠΈΠ· ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "email" Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ "users".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ALTER TABLE

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ALTER TABLE для измСнСния primary key Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ "users".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ИзмСнСниС primary key Π½Π° Π±Π°Π·Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ

-- ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key
ALTER TABLE users ADD PRIMARY KEY (email);

-- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ старого primary key
ALTER TABLE users DROP PRIMARY KEY;

-- Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key
ALTER TABLE users ADD PRIMARY KEY (email);

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ измСняСм primary key Π½Π° Π±Π°Π·Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "email" Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ "users".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ИзмСнСниС primary key Π½Π° Π±Π°Π·Π΅ созданной ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ

-- Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
ALTER TABLE users ADD new_id INT;

-- ОбновлСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
UPDATE users SET new_id = id;

-- ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ primary key Π½Π° Π±Π°Π·Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
ALTER TABLE users ADD PRIMARY KEY (new_id);

-- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ старого primary key
ALTER TABLE users DROP PRIMARY KEY;

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ "new_id" Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ "users", ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ значСния ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "id" Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, опрСдСляСм Π½ΠΎΠ²Ρ‹ΠΉ primary key Π½Π° Π±Π°Π·Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ удаляСм старый primary key.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ИзмСнСниС primary key Π² MySQL ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях. ΠœΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE для измСнСния primary key Π² MySQL. Для этого ΠΌΡ‹ опрСдСляСм Π½ΠΎΠ²Ρ‹ΠΉ primary key, удаляСм старый primary key ΠΈ добавляСм Π½ΠΎΠ²Ρ‹ΠΉ primary key. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ALTER TABLE. НадСюсь, этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key Π² MySQL.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ИзмСнСниС Ρ‚Π°Π±Π»ΠΈΡ† Π² Microsoft SQL Server ALTER TABLE - Π²ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

QA 8. PRIMARY KEY Π² MySQL Workbench (ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡)

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, внСшний ΠΊΠ»ΡŽΡ‡, суррогатный ΠΊΠ»ΡŽΡ‡ / Илья Π₯ΠΎΡ…Π»ΠΎΠ²

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ MySQL: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

πŸ”‘ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ primary key MySQL: простой способ ΠΈ инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ”‘