Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ograniczenie klucza podstawowego MySql z nazwą

To tak samo, jak MySQL ignoruje CONSTRAINT pk_PersonID część. Możesz to sprawdzić, tworząc tabelę, a następnie zrzucając ją lub wydając SHOW CREATE TABLE Persons .

Wydaje mi się, że obsługuje tę składnię tylko w celu zapewnienia zgodności z innymi serwerami SQL (ale ignoruje ją dla kluczy podstawowych i innych kluczy lokalnych) i nie przechowuje jej informacji (nazwy ograniczenia).

Jednak do użycia z kluczami obcymi CONSTRAINT słowo kluczowe jest używane również w MySQL.

mysql> CREATE TABLE test.Persons (
    -> P_Id int NOT NULL,
    -> LastName varchar(255) NOT NULL,
    -> FirstName varchar(255),
    -> Address varchar(255),
    -> City varchar(255),
    -> CONSTRAINT pk_PersonID PRIMARY KEY (P_Id)
    -> );
Query OK, 0 rows affected (0.50 sec)

server$ mysqldump -p test Persons
Enter password:
--
-- Table structure for table `Persons`
--
DROP TABLE IF EXISTS `Persons`;
CREATE TABLE `Persons` (
  `P_Id` int(11) NOT NULL,
  `LastName` varchar(255) NOT NULL,
  `FirstName` varchar(255) DEFAULT NULL,
  `Address` varchar(255) DEFAULT NULL,
  `City` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`P_Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Tutaj jest również test, aby udowodnić, że MySQL nie przechowuje nigdzie nazwy ograniczenia i nie używa jej podczas drukowania błędów (jak wspomniano dla innych omawianych serwerów SQL Jaki jest cel nazewnictwa ograniczeń :

mysql> insert into Persons (P_Id) values(1);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into Persons (P_Id) values(1);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. W jaki sposób tabele innodb są blokowane podczas przetwarzania wyzwalacza ON INSERT?

  2. Jak ustawić limit czasu zapytania ActiveRecord dla mysql?

  3. Zapobiegaj wprowadzaniu zduplikowanych danych do bazy danych mysql

  4. Jak generować zagnieżdżone obiekty json przy użyciu natywnych funkcji json mysql?

  5. Wymagania dotyczące obiektów blob i pamięci masowej