Mysql
 sql >> Datenbank >  >> RDS >> Mysql

insert in select in MySQL mit JDBC

Es lag an einem Fehler in SELECT .. Anweisung.
Geänderte Anweisung lautet:

INSERT INTO vips( memberId, gotten, expires )  
   SELECT name, NOW(), DATE_ADD( now(), INTERVAL 1 MONTH )
    FROM members WHERE id = ?
  1. Sie benötigen VALUES nicht Schlüsselwort beim inserting mit einem select .
  2. Sie haben einen falschen DATEADD verwendet Funktionssyntax. Die korrekte Syntax ist Date_add( date_expr_or_col, INTERVAL number unit_on_interval) .

Sie können Ihre Insert-Anweisung wie unten korrigiert ausprobieren:

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

Siehe:

  1. INSERT ... SELECT Syntax
  2. DATE_ADD(date,INTERVAL expr unit)