Tôi đã tạo ra một bảng trong postgresql 9Làm thế nào để ngăn chặn Sequelize từ chèn NULL cho khóa chính với Postgres
create table stillbirth(id serial primary key, state varchar(100), count int not null, year int not null);
cố gắng để viết một mẫu trên Node.js với phiên bản sequelize 1.4.1.
ánh xạ bảng trên như
var StillBirth = sequelize.define('stillbirth',
{ id: {type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true},
state: Sequelize.STRING,
year: Sequelize.INTEGER,
count: Sequelize.INTEGER
}, {timestamps: false, freezeTableName: true});
bây giờ khi tôi cố gắng để tạo ra một thể hiện mới của thai chết lưu và lưu nó, tôi nhận lỗi.
/** dụ mới tạo mã **/
StillBirth
.build({state: objs[j].state, year: objs[j].year, count: objs[j].count})
.save()
.error(function(row){
console.log('could not save the row ' + JSON.stringify(row));
})
.success(function(row){
console.log('successfully saved ' + JSON.stringify(row));
})
lỗi tôi nhận được
* Thi công: INSERT INTO "thai chết lưu" ("nhà nước", "năm", "đếm"," id ") VALUES ('Andhra Pradesh', 2004,11, NULL) RETURNING ; không thể lưu hàng {"độ dài": 110, "tên": "lỗi", "mức độ nghiêm trọng": "L ERI", "mã": "23502", "tệp": "execMain.c", "dòng" : "1359", "thường lệ": "ExecConstraints"}
Nếu bạn nhìn vào sql mà nó tạo ra, nó đặt null cho khóa chính mà lý tưởng nên được tạo bởi db.
Ai đó có thể giúp tôi về những gì tôi bị thiếu ở đây không?
Cảm ơn mà làm việc với các phiên bản 1.5.x, đáng ngạc nhiên là NPM registry https://npmjs.org/package/sequelize doesnt đề cập đến bất cứ điều gì về phiên bản 1.5.0. – anishek
thử 'npm show sequelize' trên dòng lệnh. :) – sdepold
Vấn đề với giải pháp này là khi bạn cố gắng thực hiện cập nhật như user.save này ({address: null}); nó không thay đổi địa chỉ trong DB. Có cách nào để thực hiện một cập nhật một thiết lập một thuộc tính để null? – lao