一个不明白的SQL语句
现有如下的一个数据表: testTable 其中有两个 均为char(10) 的字段 ID (PK) Num(PK)
数据表中的数据会如下状态:
ID |
Num |
AA |
AA |
BB |
BB |
CC |
CC |
现执行如下SQL语句:
insert into
testTable (ID, Num)
select 'DD' , 'DD'
union select 'DD' , 'DD'
ID |
Num |
AA |
AA |
BB |
BB |
CC |
CC |
DD |
DD |
此时需要注意了:上一条SQL语句成功执行,且返回的受影响的行数只有 1 行,并没有引发主键约束,这是为什么呢?望各位前辈指教。
再现执行如下SQL语句:
insert into
testTable (ID, Num)
select 'DD' , 'DD'
此时:SQL语句 引发主键约束,不能成功执行。