1、通过判断更新
-- 如果 Target_Count + 10 < 0 则 更新Target_Count 成0, 否则 更新成 Target_Count + 10
UPDATE fnd_logical_group SET Target_Count = IF(Target_Count + 10 < 0, 0, Target_Count + 10) WHERE Target_Count + 10 < 100
2、初始化自动增长起始值
alter table table_name AUTO_INCREMENT = 1
3、创建外键表的存储过程,用于新增数据
公司 表
id name
部门 表
id name CompanyId
其中CompanyId是外键,映射公司表的id
-- 创建各个公司的未知部门 存储过程
DROP PROCEDURE IF EXISTS INSERT_INTO_TB_Department;
CREATE PROCEDURE INSERT_INTO_TB_Department()
BEGIN
declare done INT DEFAULT false;/*用于判断是否结束循环*/
declare companyId BIGINT;/*公司id,游标分量*/
declare companyName VARCHAR(50);/*公司NAME,游标分量*/
declare departmentId INT;/*部门id*/
DECLARE companys CURSOR FOR SELECT c.id, c.name FROM tb_Company c;/*定义游标.查询公司id,name列表*/
DECLARE CONTINUE handler FOR NOT FOUND SET done = true;/*循环结束标志*/
OPEN companys;/*打开游标*/
SET departmentId = 1;/*初始化部门id, 新增的第一个id,后续递增*/
REPEAT
FETCH companys INTO companyId, companyName;/*取游标分量*/
IF NOT done THEN/*存在分量。则*/
INSERT INTO `TB_Department` (`Id`, `Name`, `CompanyId`)
VALUES (departmentId, '未知部门', companyId);
SET departmentId = departmentId + 1;/*部门id加1*/
END IF;
until done END REPEAT;/*取完所有分量,结束循环*/
CLOSE companys;/*关闭游标*/
END;
CALL INSERT_INTO_TB_Department(); /*调用存储过程*/
DROP PROCEDURE INSERT_INTO_TB_Department; /*删除临时存储过程*/
4、创建表
-- 创建表
-- unsigned auto_increment 自增
-- primary key 定义主键
-- comment 注释
create table user(
id int unsigned auto_increment comment 'id',
name char(25) comment '姓名',
number char(25) comment '编号',
remark char(25) comment '备注',
primary key(id)
) engine=innodb default charset=UTF8MB4 comment '用户';
5、新增主键,删除主键
-- 删除主键
ALTER TABLE tan_db DROP PRIMARY KEY;
-- 新增主键
ALTER TABLE tan_db ADD CONSTRAINT person_PK PRIMARY KEY (id);
6、设置字段(非主键)
-- --------------
-- 设置字段(非主键)
-- --------------
-- 非主键字段一般是6个属性:
-- 1、字段数据类型 COLUMN name char(25) 跟在字段名称之后
-- 2、字符集:CHARACTER SET utf8mb4 (不设置默认用表格的配置)
-- 3、排序规则:COLLATE utf8mb4_0900_ai_ci(不设置默认用表格的配置)
-- 4、默认值:DEFAULT "" 或者 没有
-- 5、是否为空:NOT NULL 或者 NULL (4、6组合出现, 要么为空 要么 默认值 + 不为空)
-- 6、字段注释:COMMENT '姓名'
-- --------------
-- 示例如下:
-- --------------
-- 字段类型 + 字符集 + 排序规则 + 默认值 + 不为空 + 注释
ALTER TABLE user MODIFY COLUMN name char(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' NOT NULL COMMENT '姓名';
-- 字段类型 + 为空 + 注释
ALTER TABLE user MODIFY COLUMN name char(25) NULL COMMENT '姓名';
-- 字段类型 + 默认值 + 不为空 + 注释
ALTER TABLE user MODIFY COLUMN name char(25) DEFAULT "" NOT NULL COMMENT '姓名';
-- 字段类型 + 默认值 + 不为空 + 注释
ALTER TABLE user MODIFY COLUMN name int DEFAULT 0 NOT NULL COMMENT '姓名';
7、设置字段(主键)
-- --------------
-- 设置字段(主键)
-- --------------
-- 自增 auto_increment
-- 字段类型 + 自增 + 不为空 + 注释
ALTER TABLE user MODIFY COLUMN id int(11) auto_increment NOT NULL COMMENT 'id';
未完待续...