当非法减少长度时,定义为 varchar 的列的行中的内容会发生什么情况?
当然是一个菜鸟问题,但我必须问::-) 假设一列类型为 varchar,长度为 255,并且该列的一行中存储的最长字符串的长度应为 200。如果我将列长度更改为更小,会发生什么那么200?琴弦会全部被“切断”吗?
Certainly a noobish question, but I got to ask: :-) Assuming a column of type varchar and length 255 and the longest string stored in a row at this column shold have length 200. What happens, if I altered the columns length to less then 200? Would the strings all get "cut"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
默认情况下,它将允许您更改列,它将截断比新长度长的字符串,并且会生成警告。
如果您有 SQL 模式
设置 STRICT_ALL_TABLES
或STRICT_TRANS_TABLES
时,警告将变为错误,并且 ALTER 将失败。By default, it will allow you to alter the column, it will truncate strings longer than the new length, and it will generate a warning.
If you have the SQL mode
STRICT_ALL_TABLES
orSTRICT_TRANS_TABLES
set, the warning becomes an error and the ALTER will fail.