INSERT 成功但所有插入的值都变为 NULL

bcw*_*bcw 3 mysql insert

我厌倦了直接从 phpMyAdmin 执行插入,如下所示:

INSERT INTO oracle.PLAYLIST_MUSIC ( TID,
                ID,
                STATUS,
                CREATED_BY,
                CREATED_DATE,
                UPDATED_BY,
                UPDATED_DATE,
                ORDER
            )
VALUES(TID = 56919,
       ID = 115948,
       STATUS = '1',
       CREATED_BY = 15217,
       CREATED_DATE = NOW(),
       UPDATED_BY = 15217,
       UPDATED_DATE = NOW(),
       ORDER = 0)
Run Code Online (Sandbox Code Playgroud)

SQL 成功执行,但是我发现所有插入的值都变成了 NULL,包括系统生成的值,如NOW().

有人有想法吗?

Mat*_*Mat 6

你的插入语法是错误的,column=valuevalues子句中使用没有你认为的那样。

尝试:

INTO oracle.PLAYLIST_MUSIC ( TID,
                ID,
                STATUS,
                CREATED_BY,
                CREATED_DATE,
                UPDATED_BY,
                UPDATED_DATE,
                `ORDER`
            )
VALUES(56919,
       115948,
       '1',
       15217,
       NOW(),
       15217,
       NOW(),
       0)
Run Code Online (Sandbox Code Playgroud)

这些值必须与列名在insert语句中出现的顺序相同。

引用该order列可能是个好主意,因为这是一个保留字。

我猜测空值来自这样一个事实,即列未绑定到值子句中的任何内容,导致它们为空。并null = any value评估为空:

mysql> select null=1 ;
+--------+
| null=1 |
+--------+
|   NULL |
+--------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

但这只是对实际发生的事情的猜测,我很惊讶完全解析。