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

org.h2.jdbc.JdbcSQLException:ID kolom tidak ditemukan

Jika Anda mengutip kolom id saat membuat OTHERTABLE menggunakan tanda kutip ganda ("id" ), maka Anda harus mengutipnya juga saat membuat batasan integritas referensial, dan saat meminta data. Pada dasarnya, Anda harus mengutipnya setiap kali. Saya sarankan untuk tidak mengutipnya saat membuat tabel, karena dengan begitu Anda tidak perlu mengutipnya nanti. Mengutip berarti pengidentifikasi peka huruf besar-kecil. Untuk MySQL, ini berfungsi karena secara internal MySQL mengubah pengidentifikasi tanda kutip menjadi huruf kecil, tidak seperti database lainnya. Tetapi untuk H2 dan database lainnya tidak berfungsi.

Dua pernyataan berikut berfungsi untuk MySQL dan H2:

CREATE TABLE IF NOT EXISTS OTHERTABLE (
  id BIGINT AUTO_INCREMENT NOT NULL
);
CREATE TABLE IF NOT EXISTS SOMETABLE (
  id BIGINT AUTO_INCREMENT NOT NULL,
  FOREIGN KEY (id) REFERENCES OTHERTABLE(id)
);

Jadi, jika Anda mendapatkan pengecualian dalam pernyataan kedua, kemungkinan besar Anda telah menggunakan cara berbeda untuk membuat tabel pertama (OTHERTABLE ). Dan di sinilah masalahnya.

Lain kali, jika Anda mengajukan pertanyaan, harap sertakan juga create table pernyataan tabel pertama, dan posting lengkap pesan kesalahan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengakses mysql di luar cluster kubernetes saya?

  2. PDO fetchSemua pasangan nilai kunci grup ke dalam array assoc

  3. Panduan pemula untuk prosedur tersimpan dengan MySQL?

  4. Penyisipan wpdb pertama ke tabel baru mySql tidak berfungsi

  5. Kueri SQL, hanya pilih jika kolom bukan nol, jika tidak, jangan pilih