Mysql
 sql >> Base de données >  >> RDS >> Mysql

insérer dans select dans MySQL avec JDBC

Cela était dû à une erreur dans SELECT .. déclaration.
La déclaration modifiée est :

INSERT INTO vips( memberId, gotten, expires )  
   SELECT name, NOW(), DATE_ADD( now(), INTERVAL 1 MONTH )
    FROM members WHERE id = ?
  1. Vous n'avez pas besoin de VALUES mot clé lors de l'inserting avec un select .
  2. Vous avez utilisé un mauvais DATEADD syntaxe de la fonction. La syntaxe correcte est Date_add( date_expr_or_col, INTERVAL number unit_on_interval) .

Vous pouvez essayer votre instruction d'insertion corrigée ci-dessous :

INSERT INTO vips( memberId, gotten, expires )  
   SELECT name FROM members
     WHERE id = ?, NOW(), DATE_ADD( now(), INTERVAL 1 MONTH )

Reportez-vous à :

  1. INSERT ... SELECT Syntaxe
  2. DATE_ADD(date,unité d'expression INTERVAL)