2

我尝试在下面搜索我的问题的解决方案,但是,结果返回“如何”将空值插入列,这是我试图阻止的。请教育我。

当我将值插入一列时,其他每一列都会添加相同数量的记录,但它们是空的!什么?!?!?

    INSERT INTO departments(`Account Executive 3`) VALUES('test'),('test2');
    Query OK, 2 rows affected

这是该列的结果:

    SELECT `Account Executive 3` FROM departments;
    +---------------------+
    | Account Executive 3 |
    +---------------------+
    | test                |
    | test2               |

伟大的!正是我想要的。这是我不想要的:

    SELECT `Account Executive 2` FROM departments;
    +---------------------+
    | Account Executive 2 |
    +---------------------+
    |                     |
    |                     |
    2 rows in set (0.00 sec)

为什么 X 数量的空行附加到每隔一列?

4

1 回答 1

2

当您插入表格时,您正在插入新的数据;它包括表中的每一列,无论它是否获得值。

想想 Excel 电子表格。当您插入一个新行并在 cell 中输入一个值时A1,您不会只得到一个单元格;该行一直延伸到整个工作表,无论您是否将值放在单元格中A1

为了说明,假设您有一个Tbl包含三列和一行的表 ( ):

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123

如果你INSERT INTO Tbl (COL_A) VALUES (2),你现在有:

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123
2        

另一个INSERT INTO Tbl (COL_A, COL_C) VALUES (3, 234)结果是:

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123
2        
3                 234

新的空列实际上包含NULL; 为了更清楚地展示,我将它们留空。最后一个实际上看起来更像

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123
2        NULL     NULL   
3        NULL     234
于 2013-10-04T23:52:07.187 回答