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

mysql cte . използването на with и вмъкване предупреждава за синтактична грешка

Използвайте insert . . . select :

INSERT INTO flow_instances (custom_id_year, custom_id_counter)
WITH this_year AS (
      SELECT YEAR(CURDATE()) as this_year
     ),
     max_val AS (
      SELECT COALESCE(MAX(custom_id_counter), 0) as max_val
      FROM flow_instances AS max_val
      WHERE custom_id_year = YEAR(CURDATE())
     )
    SELECT ty.this_year, mv.max_val + 1
    FROM this_year ty CROSS JOIN
         max_val mv;

Трябва да направите справка с CTE, за да използвате стойностите, които те дефинират.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ред на изтриване с ограничения на външния ключ,

  2. Как работи нещо OR DIE() в PHP?

  3. Crosstab View в mySQL?

  4. MySQL - Защо правилата COLLATION се игнорират от оператора LIKE за немски символ ß

  5. намерете броя на редовете в върнатия mysql резултат (nodejs)