如何更改 "live database"?
How do I make changes to a "live database"?
我已经创建了 vehicle_unit table
CREATE TABLE vehicle_unit (
garage_code NUMERIC(2) NOT NULL,
vunit_id NUMERIC(6) NOT NULL,
vunit_purchase_price NUMERIC(7,2),
vunit_exhibition_flag CHAR(1) NOT NULL,
vehicle_insurance_id VARCHAR(20) NOT NULL,
vunit_rego VARCHAR(8) NOT NULL
);
并在其中插入一些值:
INSERT INTO vehicle_unit(vunit_purchase_price,vunit_exhibition_flag,vehicle_insurance_id,vunit_rego,vunit_id, garage_code)
SELECT 50000.00, 'R', 'sports-ute-449-12b', 'RD3161',garage_count_vehicles, garage_code
FROM garage
WHERE garage_email='caulfield@rdbms.example.com';
如果我想添加一个名为 condition_flag 的 NON NULL 列,我该如何更改这个实时数据库?我是否使用 alter table?但是如何插入这个新值?
编辑:我尝试了“Alter table”,但我收到一条错误消息,提示 table 必须为空才能添加强制性(非空)列。
在 ALTER ... NOT NULL
语句之前,更新所有现有记录以具有值(如果它们还没有)。然后发出你的 ALTER ... NOT NULL
,或者按照 JNevill 已经推荐的那样,也添加一个 DEFAULT
子句(这将使你免于修改在 INSERT
期间可能不提供值的代码)。
我已经创建了 vehicle_unit table
CREATE TABLE vehicle_unit (
garage_code NUMERIC(2) NOT NULL,
vunit_id NUMERIC(6) NOT NULL,
vunit_purchase_price NUMERIC(7,2),
vunit_exhibition_flag CHAR(1) NOT NULL,
vehicle_insurance_id VARCHAR(20) NOT NULL,
vunit_rego VARCHAR(8) NOT NULL
);
并在其中插入一些值:
INSERT INTO vehicle_unit(vunit_purchase_price,vunit_exhibition_flag,vehicle_insurance_id,vunit_rego,vunit_id, garage_code)
SELECT 50000.00, 'R', 'sports-ute-449-12b', 'RD3161',garage_count_vehicles, garage_code
FROM garage
WHERE garage_email='caulfield@rdbms.example.com';
如果我想添加一个名为 condition_flag 的 NON NULL 列,我该如何更改这个实时数据库?我是否使用 alter table?但是如何插入这个新值?
编辑:我尝试了“Alter table”,但我收到一条错误消息,提示 table 必须为空才能添加强制性(非空)列。
在 ALTER ... NOT NULL
语句之前,更新所有现有记录以具有值(如果它们还没有)。然后发出你的 ALTER ... NOT NULL
,或者按照 JNevill 已经推荐的那样,也添加一个 DEFAULT
子句(这将使你免于修改在 INSERT
期间可能不提供值的代码)。