mysql 更改字段类型的问题

mysql 更改字段类型的问题,第1张

1) 会...假如字段类型为(int)改为bigint 一段时间后..存储的值已经超过了 int所限制的大小..再改回来int的类型...值肯定会有错...会报out range的错误...也可能会导致 数据错乱...大于int的值全部更新为 int max的值...

2) 更改表结构 会导致整张表重建..包括表上的索引...顺序为: create new temporary table like old_table ->copy old_table data to new_table ->drop old_table ->rename new_table

create procedure batchUpdate(in n int)  

begin  

declare inParam int default n  

declare i int default 1  

declare id int  

declare username varchar(255)  

declare integral varchar(255)  

declare ranking int  

declare _resultSet cursor for select a.id, a.username,a.integral,a.ranking from user a order by a.integral desc limit inParam  

open _resultSet  

while i <= inParam do  

fetch _resultSet into id, username, integral,ranking  

update user a set a.ranking = i where a.id = id  

set i = i +1  

end while  

close _resultSet  

end  

  

mysql> select * from user  

+----+----------+----------+---------+  

| id | username | integral | ranking |  

+----+----------+----------+---------+  

|  1 | abc      |        1 |       0 |  

|  2 | abc      |        2 |       0 |  

|  3 | abc      |        3 |       0 |  

|  4 | abc      |        4 |       0 |  

|  5 | abc      |        5 |       0 |  

|  6 | abc      |        6 |       0 |  

|  7 | abc      |        7 |       0 |  

|  8 | abc      |        8 |       0 |  

|  9 | abc      |        9 |       0 |  

| 10 | abc      |       10 |       0 |  

| 11 | abc      |       11 |       0 |  

| 12 | abc      |       12 |       0 |  

| 13 | abc      |       13 |       0 |  

| 14 | abc      |       14 |       0 |  

+----+----------+----------+---------+  

14 rows in set  

  

mysql> call batchUpdate(14)  

Query OK, 1 row affected  

  

mysql> select * from user  

+----+----------+----------+---------+  

| id | username | integral | ranking |  

+----+----------+----------+---------+  

|  1 | abc      |        1 |      14 |  

|  2 | abc      |        2 |      13 |  

|  3 | abc      |        3 |      12 |  

|  4 | abc      |        4 |      11 |  

|  5 | abc      |        5 |      10 |  

|  6 | abc      |        6 |       9 |  

|  7 | abc      |        7 |       8 |  

|  8 | abc      |        8 |       7 |  

|  9 | abc      |        9 |       6 |  

| 10 | abc      |       10 |       5 |  

| 11 | abc      |       11 |       4 |  

| 12 | abc      |       12 |       3 |  

| 13 | abc      |       13 |       2 |  

| 14 | abc      |       14 |       1 |  

+----+----------+----------+---------+  

14 rows in set


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8754757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存