sql >> Database teknologi >  >> RDS >> Mysql

mysql cte. bruger med og indsæt det advarer om en syntaksfejl

Brug 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;

Du skal referere til CTE'erne for at bruge de værdier, de definerer.




  1. Sådan gemmer du Java Date til Mysql datetime med JPA

  2. Hvordan tilføjer man kolonne, hvis den ikke findes på PostgreSQL?

  3. Sådan kontrolleres, om mysqli_query har slettet nogen rækker

  4. Postgres kolonne eksisterer ikke