timestamp 数据库时间戳,添加该类型字段,此列不可NULL,添加/修改操作自动更新该字段值,与时间无任何关系。
timestamp 二进制数据,其实就是binary(8),C#中对应类型为byte[],查询分析器显示为16进制,若在程序中使用可将byte[] 转为long类型使用。
在控制并发过程中,将此字段转为bigint返回到程序中,当修改数据时,update mtable set field='value' where ID=1 and 时间戳=CAST(27316 as timestamp),通过影响行数,来判断是否执行成功,不可以 and 时间戳=27316 这样使用,会出现问题,and 时间戳=1 或者 and 时间戳=10 等这样的小值数据,将时间戳转为整形查看没有这样的数据,也能查出来。
时间戳是占用8字节空间 where solo=0x0000000000006AB4(10进制 27316 ),这样可以查询得出,虽然以16进制显示,但终究不是16进制数据,所以对于二进制数据 0x6AB4 和0x0000000000006AB4 是不相等的,前者占用2个字节,后者占用8个字节。