Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

org.h2.jdbc.JdbcSQLException:Không tìm thấy ID cột

Nếu bạn trích dẫn cột id khi tạo OTHERTABLE sử dụng dấu ngoặc kép ("id" ), thì bạn cũng phải trích dẫn nó khi tạo ràng buộc toàn vẹn tham chiếu và khi truy vấn dữ liệu. Về cơ bản, bạn phải trích dẫn nó mỗi lần. Tôi đề nghị không trích dẫn nó khi tạo bảng, bởi vì theo cách đó bạn không phải trích dẫn nó sau này. Trích dẫn có nghĩa là số nhận dạng có phân biệt chữ hoa chữ thường. Đối với MySQL, nó hoạt động vì bên trong MySQL chuyển đổi các định danh bỏ dấu ngoặc kép thành chữ thường, không giống như các cơ sở dữ liệu khác. Nhưng đối với H2 và các cơ sở dữ liệu khác, nó không hoạt động.

Hai câu lệnh sau hoạt động cho cả MySQL và 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)
);

Vì vậy, nếu bạn có một ngoại lệ trong câu lệnh thứ hai, rất có thể bạn đã sử dụng một cách khác để tạo bảng đầu tiên (OTHERTABLE ). Và đây là vấn đề.

Lần tới, nếu bạn đặt câu hỏi, vui lòng bao gồm create table tuyên bố của bảng đầu tiên và đăng hoàn thành thông báo lỗi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RSA trong Android tạo ra các khóa đúng nhưng giải mã sai

  2. Cách sử dụng Trình hướng dẫn cơ sở dữ liệu MySQL cPanel

  3. Ví dụ DAYOFWEEK () - MySQL

  4. MySql:loại bỏ các hàng trong bảng tùy thuộc vào các giá trị trùng lặp của cột?

  5. Eval () hiển thị giá trị tùy chỉnh nếu null