日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

DDL

數(shù)據(jù)庫模式定義語言DDL(Data Definition Language),是用于描述數(shù)據(jù)庫中要存儲的現(xiàn)實世界實體的語言。Easyswoole提供了一個DDL庫,方便用戶用于定義一個數(shù)據(jù)庫表結(jié)構(gòu)。

組件要求

  • easyswoole / spl:^ 1.2

安裝方法

composer require easyswoole/ddl

倉庫地址

easyswoole/ddl

基本使用

創(chuàng)建表(CreateTable)

use EasySwoole\DDL\Blueprint\Create\Table as CreateTable;
use EasySwoole\DDL\DDLBuilder;
use EasySwoole\DDL\Enum\Character;
use EasySwoole\DDL\Enum\Engine;

$scoreSql = DDLBuilder::create('score', function (CreateTable $table) {
    $table->setIfNotExists()->setTableComment('成績表');          //設(shè)置表名稱
    $table->setTableCharset(Character::UTF8MB4_GENERAL_CI);     //設(shè)置表字符集
    $table->setTableEngine(Engine::INNODB);                     //設(shè)置表引擎
    $table->int('id')->setIsUnsigned()->setIsAutoIncrement()->setIsPrimaryKey()->setColumnComment('自增ID');
    $table->int('stu_id')->setIsUnsigned()->setColumnComment('學(xué)生id');
    $table->int('course_id')->setIsUnsigned()->setZeroFill()->setColumnComment('課程id');
    $table->float('score', 3, 1)->setColumnComment('成績');
    $table->int('created_at', 10)->setColumnComment('創(chuàng)建時間');
    $table->foreign(null,'stu_id','student','stu_id')
        ->setOnDelete(Foreign::CASCADE)->setOnUpdate(Foreign::CASCADE);
});
echo $scoreSql;

//結(jié)果如下:

CREATE TABLE IF NOT EXISTS `score` (
  `id` int UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
  `stu_id` int UNSIGNED NOT NULL COMMENT '學(xué)生id',
  `course_id` int UNSIGNED ZEROFILL NOT NULL COMMENT '課程id',
  `score` float(3,1) NOT NULL COMMENT '成績',
  `created_at` int(10) NOT NULL COMMENT '創(chuàng)建時間',
  FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`) ON DELETE CASCADE ON UPDATE CASCADE
)
ENGINE = INNODB DEFAULT COLLATE = 'utf8mb4_general_ci' COMMENT = '成績表';

修改表(AlterTable)

use EasySwoole\DDL\Blueprint\Alter\Table as AlterTable;
use EasySwoole\DDL\DDLBuilder;

$alterStuScoreSql = DDLBuilder::alter('score', function (AlterTable $table) {
    $table->setRenameTable('student_score')->setTableComment('學(xué)生成績表');
    $table->modifyIndex('ind_score')->normal('ind_score', 'score')->setIndexComment('學(xué)生成績--普通索引');
    $table->modifyForeign('fk_stu_id')->foreign('fk_stu_id', 'stu_id', 'student_info', 'stu_id');
});
echo $alterStuScoreSql;

//結(jié)果如下:

ALTER TABLE `score` RENAME TO `student_score`;
ALTER TABLE `student_score` 
COMMENT = '學(xué)生成績表',
DROP INDEX `ind_score`,
ADD INDEX `ind_score` (`score`) COMMENT '學(xué)生成績--普通索引';
ALTER TABLE `student_score` DROP FOREIGN KEY `fk_stu_id`;
ALTER TABLE `student_score` ADD CONSTRAINT `fk_stu_id` FOREIGN KEY (`stu_id`) REFERENCES `student_info` (`stu_id`);

刪除表(DropTable)

use EasySwoole\DDL\DDLBuilder;

$dropStuScoreSql = DDLBuilder::drop('student_score');
echo $dropStuScoreSql;

//結(jié)果如下:

DROP TABLE `student`;
主站蜘蛛池模板: 纸牌屋电影| 心奇爆龙| 复仇之路| 杨功个人资料介绍| 流行性感冒ppt课件| 媚狐传| 头像女伤感| 自拍成人| 杨佑宁个人简历| 团结力量歌词大全图片| 日韩在线欧美| 补充电解质喝什么饮料| 欧美动作电影| 电视剧瞧这一家子演员表| a friend in need中文翻译| 让我听懂你的语言歌词| 个体工商户起名字大全免费| 巴黎最后的探戈| 接吻教学视频| 《水中花》日本电影| 营业执照注销打什么电话咨询| 妈妈的朋友未删减版| 搬山道人| 花有重开日电影| 信我者无需多言,不信我者| 女同版痴汉电车| 不得不爱吉他谱| 色戒.| 守护甜心几梦做了| 江南好简谱| 光棍电影| 竹内纱里奈作品| 科室对分级护理落实情况检查记录 | 时间空间和人第二部| 花飞满城春 电影| 肚子上拨罐能减肥吗| 齐芳| 电影喜宝| 电影潘金莲| 膨腹爱好者撑肚子视频| 在线观看www视频|