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

Как да пренапиша тази MySQL заявка, така че да не извежда тази грешка:Не можете да посочите целевата таблица „crawlLog“ за актуализация в клаузата FROM?

Защо да използвате подизбор? INSERT INTO ... SELECT съществува:

INSERT INTO crawlLog (companyId, timeStartCrawling)
SELECT companies.id, NOW()
FROM companies
LEFT OUTER JOIN crawlLog
ON companies.id = crawlLog.companyId
WHERE crawlLog.companyId IS NULL
LIMIT 1

И по този начин не трябва да се оплаква от използването на таблица както в частта INSERT, така и в частта SELECT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете се с опция за локален файл в MySql Workbench

  2. Вложено Вмъкване в и изберете оператор

  3. ИЗБЕРЕТЕ ред по DATEPART()

  4. JPA:как да запазя низ в поле на база данни, напишете MYSQL Text

  5. Неефективен план за изпълнение, взет от MySQL InnoDB