Search code examples
mysqlselectinsertmysql-error-1064division

insert ... select with divide operator in select errors?


CREATE TABLE IF NOT EXISTS XY ( x INT NOT NULL , y FLOAT NULL , PRIMARY KEY(x) )

INSERT INTO XY (x,y)
(select 1 as x ,(1/7) as y);

errors with

Error code 1064, SQL state 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO XY (x,y)
(select 1 as x ,(1/7) as y)' at line 7
Line 1, column 1

any ideas?


Solution

  • You should add ; after CREATE TABLE statement (or before INSERT statement) . You are trying to execute 2 different queries without separator.

    CREATE TABLE IF NOT EXISTS XY (
    x INT NOT NULL ,
    y FLOAT NULL ,
    PRIMARY KEY(x)
    );  # !!! Originally, you missed ;
    
    INSERT INTO XY (x,y)
    (select 1 as x ,(1/7) as y);