150 lines
4.5 KiB
JavaScript
150 lines
4.5 KiB
JavaScript
|
|
const mysql = require('mysql2/promise');
|
|||
|
|
|
|||
|
|
const createSlaughterhouseTable = async () => {
|
|||
|
|
let connection = null;
|
|||
|
|
try {
|
|||
|
|
// 创建数据库连接
|
|||
|
|
connection = await mysql.createConnection({
|
|||
|
|
host: '129.211.213.226',
|
|||
|
|
port: 9527,
|
|||
|
|
user: 'root',
|
|||
|
|
password: 'aiotAiot123!',
|
|||
|
|
database: 'ningxia_zhengfu',
|
|||
|
|
charset: 'utf8mb4'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('数据库连接成功');
|
|||
|
|
|
|||
|
|
// SQL语句数组
|
|||
|
|
const sqlStatements = [
|
|||
|
|
// 删除旧表(如果存在)
|
|||
|
|
'DROP TABLE IF EXISTS government_slaughterhouses;',
|
|||
|
|
|
|||
|
|
// 创建新表
|
|||
|
|
`CREATE TABLE government_slaughterhouses (
|
|||
|
|
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '屠宰场ID',
|
|||
|
|
name VARCHAR(100) NOT NULL UNIQUE COMMENT '屠宰场名称',
|
|||
|
|
address VARCHAR(255) NOT NULL COMMENT '地址',
|
|||
|
|
contactPerson VARCHAR(50) NOT NULL COMMENT '联系人',
|
|||
|
|
contactPhone VARCHAR(20) NOT NULL COMMENT '联系电话',
|
|||
|
|
licenseNumber VARCHAR(50) NOT NULL UNIQUE COMMENT '许可证号',
|
|||
|
|
status ENUM('active', 'inactive') NOT NULL DEFAULT 'active' COMMENT '状态(active: 正常, inactive: 停用)',
|
|||
|
|
createTime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
created_by INT NULL COMMENT '创建人ID',
|
|||
|
|
updated_by INT NULL COMMENT '更新人ID',
|
|||
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|||
|
|
deleted_at DATETIME NULL
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='政府系统屠宰场表';`,
|
|||
|
|
|
|||
|
|
// 添加索引
|
|||
|
|
'CREATE INDEX idx_name ON government_slaughterhouses (name);',
|
|||
|
|
'CREATE INDEX idx_licenseNumber ON government_slaughterhouses (licenseNumber);',
|
|||
|
|
'CREATE INDEX idx_status ON government_slaughterhouses (status);'
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 执行表创建相关SQL
|
|||
|
|
for (const sql of sqlStatements) {
|
|||
|
|
await connection.execute(sql);
|
|||
|
|
console.log(`执行SQL成功: ${sql.substring(0, 50)}...`);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 准备测试数据(使用参数化查询避免字符编码问题)
|
|||
|
|
const testData = [
|
|||
|
|
[
|
|||
|
|
'宁夏银川市第一屠宰场',
|
|||
|
|
'宁夏回族自治区银川市金凤区良田镇植物园路',
|
|||
|
|
'张明',
|
|||
|
|
'13800138001',
|
|||
|
|
'SC1234567890123',
|
|||
|
|
'active',
|
|||
|
|
'2023-01-15 00:00:00',
|
|||
|
|
1,
|
|||
|
|
1
|
|||
|
|
],
|
|||
|
|
[
|
|||
|
|
'宁夏石嘴山市肉类加工厂',
|
|||
|
|
'宁夏回族自治区石嘴山市大武口区星海镇',
|
|||
|
|
'李强',
|
|||
|
|
'13900139002',
|
|||
|
|
'SC1234567890124',
|
|||
|
|
'active',
|
|||
|
|
'2023-02-10 00:00:00',
|
|||
|
|
1,
|
|||
|
|
1
|
|||
|
|
],
|
|||
|
|
[
|
|||
|
|
'宁夏吴忠市清真屠宰场',
|
|||
|
|
'宁夏回族自治区吴忠市利通区金银滩镇',
|
|||
|
|
'王芳',
|
|||
|
|
'13700137003',
|
|||
|
|
'SC1234567890125',
|
|||
|
|
'active',
|
|||
|
|
'2023-03-05 00:00:00',
|
|||
|
|
1,
|
|||
|
|
1
|
|||
|
|
],
|
|||
|
|
[
|
|||
|
|
'宁夏固原市牲畜屠宰场',
|
|||
|
|
'宁夏回族自治区固原市原州区官厅镇',
|
|||
|
|
'赵伟',
|
|||
|
|
'13600136004',
|
|||
|
|
'SC1234567890126',
|
|||
|
|
'inactive',
|
|||
|
|
'2023-04-20 00:00:00',
|
|||
|
|
1,
|
|||
|
|
1
|
|||
|
|
],
|
|||
|
|
[
|
|||
|
|
'宁夏中卫市肉类屠宰加工中心',
|
|||
|
|
'宁夏回族自治区中卫市沙坡头区迎水桥镇',
|
|||
|
|
'陈静',
|
|||
|
|
'13500135005',
|
|||
|
|
'SC1234567890127',
|
|||
|
|
'active',
|
|||
|
|
'2023-05-15 00:00:00',
|
|||
|
|
1,
|
|||
|
|
1
|
|||
|
|
]
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 插入测试数据
|
|||
|
|
const insertSql = `
|
|||
|
|
INSERT INTO government_slaughterhouses (
|
|||
|
|
name,
|
|||
|
|
address,
|
|||
|
|
contactPerson,
|
|||
|
|
contactPhone,
|
|||
|
|
licenseNumber,
|
|||
|
|
status,
|
|||
|
|
createTime,
|
|||
|
|
created_by,
|
|||
|
|
updated_by
|
|||
|
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|||
|
|
`;
|
|||
|
|
|
|||
|
|
let insertedCount = 0;
|
|||
|
|
for (const data of testData) {
|
|||
|
|
await connection.execute(insertSql, data);
|
|||
|
|
insertedCount++;
|
|||
|
|
console.log(`插入测试数据成功: ${data[0]}`);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 查询插入的记录数
|
|||
|
|
const [result] = await connection.execute('SELECT COUNT(*) AS total_records FROM government_slaughterhouses;');
|
|||
|
|
console.log(`
|
|||
|
|
成功创建屠宰场表并插入 ${result[0].total_records} 条测试数据!`);
|
|||
|
|
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('创建屠宰场表或插入测试数据失败:', error);
|
|||
|
|
} finally {
|
|||
|
|
// 关闭数据库连接
|
|||
|
|
if (connection) {
|
|||
|
|
await connection.end();
|
|||
|
|
console.log('数据库连接已关闭');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 执行函数
|
|||
|
|
createSlaughterhouseTable();
|