如何实现mysql数据库 表 的url (text字段)的到达一定长度比如(255)之后
自动截断。实际不需要存入那么多的website地址 。 我的想法还是left(255),
开发人员意思不想用这个left。 我现在是没有办法啦,不用left实现自动截断?
自动截断。实际不需要存入那么多的website地址 。 我的想法还是left(255),
开发人员意思不想用这个left。 我现在是没有办法啦,不用left实现自动截断?
解决方案 »
- 用Mysql还原.sql文件?.sql文件在其他文件夹
- 查找复合索引的字段按顺序输出
- 在MySql中如何将一张表的内容更新到另一张表中?
- 在线求一条sql语句 急!!!
- mysql查询 批量更新问题
- MySQL Administrator中怎样象SQLSERVER中打开表 返回所有行在那里?
- mysql 查询排序问题
- SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
- 一个简单的MYSQL题
- 询问一个mysql数据库 表设计问题
- 求一条MYSQL查询语句
- heap内存表ERROR 1114 : The table 'UserIP' is full
mysql> desc t2;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| a | smallint(6) | NO | PRI | NULL | auto_increment |
| c | varchar(2) | YES | | NULL | |
| d | varchar(2) | YES | | NULL | |
| e | int(3) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
mysql> insert into t2 values (null,'123','123456',12);
ERROR 1406 (22001): Data too long for column 'c' at row 1
mysql> insert into t2 values (null,'12',left('123456',2),12);
Query OK, 1 row affected (0.05 sec)
mysql> select * from t2;
+---+------+------+------+
| a | c | d | e |
+---+------+------+------+
| 1 | Zh | !! | 123 |
| 2 | JK | ## | 124 |
| 3 | HL | ^^ | 123 |
| 4 | 12 | 12 | 12 |
+---+------+------+------+
4 rows in set (0.00 sec)
截断在程序外面判断处理,不要交个数据库处理,同时,要把数据库的sql_mode设置为严格检查模式,以免引起一些数据异常问题。