Sama halnya dengan MySQL yang mengabaikan CONSTRAINT pk_PersonID
bagian. Anda dapat memeriksa dengan membuat tabel dan kemudian membuangnya atau mengeluarkan SHOW CREATE TABLE Persons
.
Saya kira itu mendukung sintaks ini hanya untuk kompatibilitas dengan server SQL lain (tetapi mengabaikannya untuk kunci lokal utama dan lainnya) dan tidak menyimpan informasinya (nama kendala).
Namun untuk penggunaan dengan kunci asing CONSTRAINT
kata kunci juga digunakan di 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;
Berikut ini juga pengujian untuk membuktikan MySQL tidak menyimpan nama kendala di mana pun dan tidak menggunakannya saat mencetak kesalahan (seperti yang disebutkan untuk server SQL lain yang dimaksud Apa tujuan dari penamaan kendala :
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'