MySQL表:BIT(1)非空默认值为“1”,但始终默认为“0”

ybzsozfc  于 2023-05-05  发布在  Mysql
关注(0)|答案(2)|浏览(406)

我是这样创建表的:

CREATE TABLE `item_spa_cust` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `spa_id` INT(10) NULL DEFAULT NULL,
    `type` VARCHAR(20) NOT NULL COLLATE 'latin1_swedish_ci',
    `is_valid` BIT(1) NOT NULL DEFAULT b'1',
    `company_name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
    `custno` VARCHAR(6) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
    PRIMARY KEY (`id`),
    INDEX `FK_item_spa_cust_item_spa` (`spa_id`),
    CONSTRAINT `FK_item_spa_cust_item_spa` FOREIGN KEY (`spa_id`) REFERENCES `item_spa` (`id`)) 
;

我希望is_valid字段默认设置为'1',但是,它总是默认为'0'。
我对此感到非常困惑,请帮助。

7cjasjjr

7cjasjjr1#

您可能应该使用1,而不是b'1'
话虽如此,在这个sqlfiddle中,它按预期工作。
如果你正在插入并希望默认值,你不应该在插入查询中指定它。

7cjasjjr

7cjasjjr2#

ALTER TABLE table_name CHANGE COLUMN column_name BIT(1) NULL DEFAULT 0 ;

相关问题