MYSQL 通过检查当前列数据类型修改列数据类型脚本

MYSQL Modify Column Data Type Script with Checking of Current Column Data Type

我这里有一个 mysql 脚本,它改变了我的 'Job' table 并将 DESCRIPTION 列数据类型更改为 TEXT。但是,我将此脚本与所有其他脚本一起使用,有时 运行 多次。 我的问题是,我需要在我的脚本中添加什么,以便它检查 DESCRIPTION 列的数据类型是否已经是 TEXT?由于数据量大,此脚本执行时间过长,如果 DESCRIPTION 列已更改为 TEXT,我不希望再次执行它。

ALTER TABLE Job
MODIFY DESCRIPTION TEXT;
SELECT
  COLUMN_NAME, DATA_TYPE 
FROM
  INFORMATION_SCHEMA.COLUMNS 
WHERE
  TABLE_SCHEMA = 'YOUR_DB_NAME'
AND
  TABLE_NAME = 'YOUR_TABLE_NAME'
AND 
 COLUMN_NAME = 'YOUR_COLUMN_NAME';

这将为您提供所询问列的数据类型。

使用 If 条件你可以 运行 你的改变 table 命令;

这是我所做的。这是很长的路要走,但它奏效了。它需要在存​​储过程中。感谢您的帮助@shahmanthan9。如果你们知道更好的方法,请 post 在这里。谢谢!

DROP PROCEDURE IF EXISTS sp_JobUpdateDescriptionColumnType;

CREATE PROCEDURE sp_JobUpdateDescriptionColumnType()
    DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
    IF NOT EXISTS( SELECT NULL
       FROM INFORMATION_SCHEMA.COLUMNS
       WHERE TABLE_SCHEMA = DATABASE()
             AND TABLE_NAME = 'Job'
             AND COLUMN_NAME = 'Description'
             AND DATA_TYPE = 'text' )
    THEN
        ALTER TABLE Job
        MODIFY Description TEXT;
    END IF;
END;

CALL sp_JobUpdateDescriptionColumnType;

DROP PROCEDURE IF EXISTS sp_JobUpdateDescriptionColumnType;