0

如果表上存在列,我想添加列。但是我的代码不起作用我收到错误消息是;

[Err] 1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 11 行的“ColumnType DEFAULT (CASE DefaultValue WHEN NULL THEN SELECT 'NULL'' 附近使用正确的语法”

我的代码 MySql 代码块

CREATE DEFINER = CURRENT_USER FUNCTION `AddTableColumn` (
    TableName VARCHAR (500),
    ColumnName VARCHAR (500),
    IsPrimary TINYINT (4),
    IsNull TINYINT (4),
    DefaultValue VARCHAR (500),
    ColumnType VARCHAR (500)
) RETURNS INTEGER
BEGIN
    ALTER TABLE TableName ADD COLUMN
IF NOT EXISTS ColumnName ColumnType DEFAULT (
    CASE DefaultValue
    WHEN NULL THEN
        SELECT
            'NULL'
        ELSE
            SELECT
                DefaultValue
            END
)(
    CASE IsNull
    WHEN 1 THEN
        (SELECT 'IS NULL')
    ELSE
        SELECT
            ('IS NOT NULL')
        END
)(
    CASE IsPrimary
    WHEN 1 THEN
        (SELECT 'PRIMARY KEY')
    ELSE
        SELECT
            ''
        END
) RETURN 0;


END;

;
4

0 回答 0