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

Buat tabel gagal dengan Batasan Kunci Asing salah Dibentuk

Saya telah menerima pesan ini berkali-kali saat menggunakan alat pihak ke-3 untuk membuat tabel dan kemudian membatasi tabel yang ada. Itu salah satu dari dua hal:

  • int kolom memiliki ukuran yang berbeda
  • int kolom memiliki bendera yang berbeda (tanpa AUTO_INCREMENT)

Sebagai contoh, saya membuat tabel dengan alat yang entah bagaimana membuat kolom sebagai INT(10) alih-alih INT(11) yang diharapkan . Padahal saya baru saja memilih INT saat membuat keduanya, semuanya kacau - tidak pernah dilacak alasannya.

Singkat cerita, biasanya yang terbaik adalah secara eksplisit menyatakan INT ukuran saat membuat tabel.

Dalam kasus Anda, berikut ini akan berfungsi:

create table users (id int(11) not null auto_increment
, username varchar(255) NOT NULL
, password varchar(255) NOT NULL
, active int NOT NULL
, PRIMARY KEY (id))
ENGINE=InnoDB COLLATE=utf8_unicode_ci;

create table athing (id int(11) not null auto_increment
, name varchar(255) not null
, status varchar(255) not null
, created_by_user_id int(11) not null
, PRIMARY KEY (id)
, CONSTRAINT athing_fk1 FOREIGN KEY (created_by_user_id) REFERENCES users (id)
) ENGINE=InnoDB COLLATE=utf8_unicode_ci;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses MySQL jarak jauh

  2. BUAT JENIS di MySQL

  3. Perbarui/Tambahkan satu kolom pada beberapa baris sekaligus

  4. Cloud 9 IDE tidak dapat terhubung ke database

  5. ID sumber daya #4 PHP MYSQL