Skip to content

数据新增

Insert Param DTS

ts
interface InsertParam {
  /**
   * 表信息
   */
  t: DefineTableResult | { table: DefineTableResult; alias?: string }
  /**
   * 插入数据
   */
  params: Record<string, any> | Record<string, any>[]
}

Example

注意事项

插入数据前确保数据表结构已经存在。否者执行会抛出 '[table name]' doesn't exist 异常。

单条数据插入

ts
import emysql, { DefineTable } from '@aicblock/emysql'

// 数据库实例化
const mysql = new emysql({
  password: '[db登录密码]',
  user: '[db登录用户名]',
  database: '访问数据库名称'
})

await mysql.init()

const t_user = DefineTable({
  tableName: 't_user',
  columns: [
    {
      name: 'id',
      dataType: 'INT',
      primaryKey: true,
      autoIncrement: true,
      comments: '主键id'
    },
    {
      name: 'name',
      dataType: 'VARCHAR',
      length: 45,
      notNull: true,
      comments: '名称'
    },
    {
      name: 'age',
      dataType: 'INT',
      notNull: true,
      comments: '年龄'
    },
    {
      name: 'sex',
      dataType: 'TINYINT',
      length: 1,
      notNull: true,
      comments: '性别'
    },
    {
      name: 'create_at',
      dataType: 'DATETIME',
      notNull: true,
      comments: '创建时间'
    }
  ]
})

await mysql.table.create(t_user)

mysql.change
  .insert({
    t: t_user,
    params: {
      name: '张三',
      age: 15,
      sex: 1,
      create_at: new Date()
    }
  })
  .then((result) => {
    // 插入数据成功
    // result.insertId -- 插入数据ID
  })
  .catch((err) => {
    // 插入数据失败
    console.error('[ERROR]::', err)
  })

多条数据插入

ts
import emysql, { DefineTable } from '@aicblock/emysql'

// 数据库实例化
const mysql = new emysql({
  password: '[db登录密码]',
  user: '[db登录用户名]',
  database: '访问数据库名称'
})

await mysql.init()

const t_user = DefineTable({
  tableName: 't_user',
  columns: [
    {
      name: 'id',
      dataType: 'INT',
      primaryKey: true,
      autoIncrement: true,
      comments: '主键id'
    },
    {
      name: 'name',
      dataType: 'VARCHAR',
      length: 45,
      notNull: true,
      comments: '名称'
    },
    {
      name: 'age',
      dataType: 'INT',
      notNull: true,
      comments: '年龄'
    },
    {
      name: 'sex',
      dataType: 'TINYINT',
      length: 1,
      notNull: true,
      comments: '性别'
    },
    {
      name: 'create_at',
      dataType: 'DATETIME',
      notNull: true,
      comments: '创建时间'
    }
  ]
})

await mysql.table.create(t_user)

mysql.change
  .insert({
    t: t_user,
    params: [
      {
        name: '张三',
        age: 15,
        sex: 1,
        create_at: new Date()
      },
      {
        name: '李四',
        age: 18,
        sex: 0,
        create_at: new Date()
      },
      {
        name: '王五',
        age: 14,
        sex: 1,
        create_at: new Date()
      }
    ]
  })
  .then((result) => {
    // 插入数据成功
    // result.insertId -- 插入数据列表
  })
  .catch((err) => {
    // 插入数据失败
    console.error('[ERROR]::', err)
  })