Я пытаюсь получить столбец в представлении, которое равно NOT NULL
и bit(1)
. Я прочитал несколько других posts, которые предлагают использовать IF
, IFNULL
или CASE
, чтобы создать столбец NOT NULL
. Проблема с этим подходом заключается в том, что вы возвращаете INT
или другой тип. Я хочу bit(1)
.MySQL - NOT NULL бит (1) столбец в поле зрения
Вместо этого я создал функцию, которая правильно возвращает столбец bit(1)
, который я хочу, но он по-прежнему отображается как NULL
.
#Suggestion from Alex - returns bit(1) NULL
CREATE FUNCTION `cast_to_boolean`(n integer) RETURNS bit(1)
BEGIN
RETURN IFNULL(n,0);
END
#Without IFNULL - returns bit(1) NULL
CREATE FUNCTION `cast_to_boolean2`(n integer) RETURNS bit(1)
BEGIN
RETURN IFNULL(n,0);
END
Вот пример, показывающий оба подхода не работают:
CREATE
VIEW `sample` AS
select
cast_to_boolean(0) AS `Resuult 1`,
cast_to_boolean2(0) AS `Resuult 2`
#now display the proc
SHOW FULL COLUMNS FROM sample;
Результаты
Вы могли бы удалить все данные, которые вам не нужны в вашем примере, и объяснить, что вам нужно? – Alex
Алекс, я думаю, что этот пример важен, поскольку он объясняет, что уже было пробовано, на основе предложений в других сообщениях. В названии говорится все, мне нужно, чтобы столбец выглядел как бит (1) и NOT NULL. – Brian