日期:2014-05-17  浏览次数:21546 次

求助高手啊!!在SQL 中插入数据时,提示不能将显式值插入时间戳列请对列列表使用 INSERT 来排除时间戳列
在SQL 中插入数据时,提示不能将显式值插入时间戳列请对列列表使用 INSERT 来排除时间戳列。是timestamp类型的问题,那么不能修改数据表中的结构怎么样进行插入?执行这一句的时候 
 insert into rdrecords32 select * 
from xcd_tem_rdrecords32  
提示为 sql不能将显式值插入时间戳列。请对列列表使用 INSERT 来排除时间戳列,或将 DEFAULT 插入时间戳列。

------解决方案--------------------
时间戳列好像是不需要显式插入的,由系统自动生成,你显式插入反而会报错,比如表a(id,timestamp),那你插入的时候只需要插入id就可以了。你试试。另外,时间戳是不建议后续继续使用的功能。
------解决方案--------------------
你插入的时候写清楚插入那些列就可以了,然后提供的值里面和列字段对应就可以了。

具体到你个例子,
假设你两个表结构都为 id(自增) value1 value2 timestamp
那么,你 INSERT SELECT 时,不要 SELECT *
用 SELECT value1,value2 就可以了,因为 id 是自增列,系统会自动处理。timestamp也是系统自动处理的,这两个字段都不能显示提供插入值。