ER_BAD_FIELD_ERRORMySql

Форум по Mysql
Ответить
Anonymous
 ER_BAD_FIELD_ERROR

Сообщение Anonymous »

Я должен был создать новую таблицу с именем «newtable» в базе данных, а затем добавить к ней «DepartmentName» ИЗ new_dev_db.departmentmaster, и как только это будет сделано, мы должны обновить код isServiceable до 2, если все сделано правильно, используя sequalize, массовое создание и массовое обновление, а также модуль перехватчиков. и если создание или обновление не завершено, выводится сообщение об ошибке «Ошибка запроса к базе данных», а сведения об ошибке и сообщение об ошибке также должны отображаться в консоли.

Код: Выделить всё

    const http = require('http');
const { Sequelize, DataTypes } = require('sequelize');

const dbConfig = {
host: 'h',
user: 'pre',
database: 'new',
password: 'h',
};

const sequelize = new Sequelize(dbConfig.database, dbConfig.user, dbConfig.password, {
host: dbConfig.host,
dialect: 'mysql',
logging: false,
});
const NewTable = sequelize.define('newtable', {
DepartmentName: {
type: DataTypes.STRING,
allowNull: false,
},
isServiceable: {
type: DataTypes.INTEGER,
allowNull: false,
},
}, {
tableName: 'newtable',
});

const DepartmentMaster = sequelize.define('departmentmaster', {
DepartmentName: {
type: DataTypes.STRING,
allowNull: false,
},
isServiceable: {
type: DataTypes.INTEGER,
allowNull: false,
},
}, {
tableName: 'departmentmaster',
});

const processBulkOperations = async () => {
const transaction = await sequelize.transaction();
try {
const departments = await DepartmentMaster.findAll();
const departmentData = departments.map(dept => ({
DepartmentName: dept.DepartmentName,
isServiceable: dept.isServiceable,
}));

await NewTable.bulkCreate(departmentData, { transaction });

await NewTable.update(
{ isServiceable: 2 },
{ where: {}, transaction }
);

await transaction.commit();
} catch (error) {
await transaction.rollback();
console.error('Database query error:', error);
throw new Error('Database query error');
}
};

const server = http.createServer(async (req, res) => {
try {
await sequelize.authenticate();
await sequelize.sync();

await processBulkOperations();

res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({ message: 'Bulk operations completed successfully' }));
} catch (error) {
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({ error: 'Database query error', details: error.message }));
}
});

server.listen(3001, () => {
console.log('Server running at http://localhost:3001/');
});
Но отображается ошибка

Код: Выделить всё

 code: 'ER_BAD_FIELD_ERROR',
errno: 1054,
sqlState: '42S22',
sqlMessage: "Unknown column 'id' in 'field list'",
sql: 'SELECT `id`, `DepartmentName`, `isServiceable`, `createdAt`, `updatedAt` FROM `departmentmaster` AS `departmentmaster`;',
parameters: undefined
Я уже пробовал, доступно ли это поле в таблице или нет, и оно уже есть

Подробнее здесь: https://stackoverflow.com/questions/793 ... ield-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»