Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Batasan kunci utama MySql dengan nama

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'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Desain Tabel Entitas-Atribut-Nilai

  2. Cegah nilai duplikat dalam database - mysql

  3. Laravel Eloquent Abaikan Casing

  4. 500 - Terjadi kesalahan – Fungsi DB melaporkan tidak ada kesalahan saat menambahkan artikel baru di Joomla

  5. Apa perilaku default MySQL JOIN, INNER atau OUTER?