Mysql
 sql >> база данни >  >> RDS >> Mysql

org.h2.jdbc.JdbcSQLException:Идентификаторът на колоната не е намерен

Ако цитирате колоната id при създаване на OTHERTABLE използвайки двойни кавички ("id" ), тогава трябва да го цитирате и при създаване на ограничението за референтна цялост и при запитване на данни. По принцип трябва да го цитирате всеки път. Предлагам да не цитирайте го при създаване на таблицата, защото по този начин не е нужно да го цитирате по-късно. Цитирането означава, че идентификаторът е чувствителен към малки и големи букви. За MySQL работи, защото вътрешно MySQL преобразува идентификаторите без кавички в малки букви, за разлика от други бази данни. Но за H2 и други бази данни не работи.

Следните две изрази работят както за MySQL, така и за 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)
);

Така че, ако имате изключение във втория израз, най-вероятно сте използвали различен начин за създаване на първата таблица (OTHERTABLE ). И тук е проблемът.

Следващия път, ако зададете въпрос, моля, включете и create table изявление на първата таблица и публикувайте завършеното съобщение за грешка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да ускоря зареждането на данни в InnoDB (ЗАРЕЖДАНЕ НА ДАННИ INFILE)?

  2. MySQL Изберете WHERE в даден ред

  3. Не може да се добави външен ключ в MySQL 5.7 (липсващо ограничение в посочената таблица)

  4. как да покажа скриване на реда на html таблица въз основа на php условие

  5. Сравнение на MySQL на SSD:инструменти и стратегии