数据表操作
Create Table DTS
创建数据表类型描述
ts
/**
* 表配置
*/
export interface TableOption {
/**
* 表名
*/
tableName: string
/**
* 表字段
*/
columns: ColumnOption[]
/**
* 定义存储文本数据时使用的编码. default: utf8mb4
*/
charset?: string
/**
* 定义字符排序和比较规则的关键字. default: utf8mb4_0900_bin
*/
collate?: string
/**
* 存储引擎. default: InnoDB
*/
engine?: TABLE_ENGINE
}
/**
* 表字段配置信息
*/
export interface ColumnOption {
name: string // 字段名
dataType: COLUMN_DATA_TYPE
length?: number // 类型长度
point?: number // DECIMAL 小数点位数
primaryKey?: boolean // 是否主键
notNull?: boolean // 是否不为空
unique?: boolean // 是否唯一
unsigned?: boolean // 是否限定整数的范围
zeroFill?: boolean // 是否长度不够,在前面补0表示
autoIncrement?: boolean // 是否自增长列
comments?: string // 列表述
defaultValue?: any // 默认值
}
/**
* 表字段类型
*/
export type COLUMN_DATA_TYPE =
| 'INT'
| 'BINARY'
| 'BIGINT'
| 'BIT'
| 'BLOB'
| 'CHAR'
| 'DATE'
| 'DATETIME'
| 'DECIMAL'
| 'DOUBLE'
| 'ENUM'
| 'FLOAT'
| 'GEOMETRY'
| 'GEOMETRYCOLLECTION'
| 'INTEGER'
| 'JSON'
| 'LINESTRING'
| 'LONGBLOB'
| 'LONGTEXT'
| 'MEDIUMBLOB'
| 'MEDIUMINT'
| 'MEDIUMTEXT'
| 'MULTILINESTRING'
| 'MULTIPOINT'
| 'MULTIPOLYGON'
| 'NUMERIC'
| 'POINT'
| 'POLYGON'
| 'REAL'
| 'SET'
| 'SMALLINT'
| 'TEXT'
| 'TIME'
| 'TIMESTAMP'
| 'TINYBLOB'
| 'TINYINT'
| 'TINYTEXT'
| 'VARBINARY'
| 'VARCHAR'
| 'YEAR'
Create
创建数据表
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// 创建 t_user 表
mysql.table
.create([
{
tableName: 't_user',
columns: [
{
name: 'id',
primaryKey: true,
autoIncrement: true,
dataType: 'INT',
comments: '主键'
},
{
name: 'username',
dataType: 'VARCHAR',
length: 255,
notNull: true,
unique: true,
comments: '用户名'
},
{
name: 'sex',
dataType: 'TINYINT',
notNull: true,
defaultValue: 1,
comments: '性别'
},
{
name: 'password',
dataType: 'VARCHAR',
length: 255,
notNull: true,
comments: '用户登陆密码'
},
{
name: 'create_at',
dataType: 'DATETIME',
notNull: true,
comments: '创建时间'
}
]
}
])
.then(() => {
// 创建成功
})
.catch(() => {
// 创建失败
})
Drop
删除数据表结构(注:请谨慎调用操作)
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// 创建 t_user 表
mysql.table
.drop('t_user')
.then(() => {
// 删除成功
})
.catch((err) => {
// 删除失败
console.error('[ERROR]::', err)
})
Exist
获取数据库表是否存在
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// 创建 t_user 表
mysql.table
.exist('t_user')
.then((result: boolean) => {
// true -> 存在
// false -> 不存在
})
.catch((err) => {
// 查询失败
console.error('[ERROR]::', err)
})
Truncate
清空表数据不记录
mysql
日志,不可以恢复数据。
ts
import emysql from '@dpapejs/emysql'
// 数据库实例化
const mysql = new emysql({
password: '[db登录密码]',
user: '[db登录用户名]',
database: '访问数据库名称'
})
// 创建 t_user 表
mysql.table
.truncate('t_user')
.then(() => {
// 清空表数据成功
})
.catch((err) => {
// 清空表数据失败
console.error('[ERROR]::', err)
})