当前位置: 首页 > news >正文

沈阳网站制作的公司哪家好谷歌网页

沈阳网站制作的公司哪家好,谷歌网页,微信平台可以做微网站吗,如何直接用jsp做网站不写servlet1.迁移数据库 1. 数据库创建语句 MySQL: CREATE DATABASE dbname; 人大金仓(Kingbase): 在人大金仓中,CREATE DATABASE 的语法通常相同,但可能需要特别注意字符集的指定(如果涉及到多语言支持…

1.迁移数据库

1. 数据库创建语句

  • MySQL

    CREATE DATABASE dbname;

  • 人大金仓(Kingbase)
    • 在人大金仓中,CREATE DATABASE 的语法通常相同,但可能需要特别注意字符集的指定(如果涉及到多语言支持等),人大金仓默认使用 UTF-8 编码。

    CREATE DATABASE dbname ENCODING='UTF8';

2. 数据类型差异

  • BOOLEAN 类型

    • MySQLBOOLEAN 映射为 TINYINT(1),而 人大金仓 使用 BOOLEAN 类型(与 PostgreSQL 相同)。
    • MySQL

      CREATE TABLE example (flag BOOLEAN);

    • 人大金仓

      CREATE TABLE example (flag BOOLEAN);

  • AUTO_INCREMENTSERIAL

    • MySQL 使用 AUTO_INCREMENT 来定义自增字段,而 人大金仓 使用 SERIAL
    • MySQL

      CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY);

    • 人大金仓

      CREATE TABLE users (id SERIAL PRIMARY KEY);

  • TEXT 类型

    • 在 MySQL 中,TEXT 是可以存储长文本的类型,而 人大金仓(基于 PostgreSQL)也使用 TEXT,但它支持更复杂的文本操作。
    • MySQL

      CREATE TABLE article (content TEXT);

    • 人大金仓

      CREATE TABLE article (content TEXT);

  • ENUM 类型

    • MySQL 支持 ENUM 类型,但人大金仓没有直接支持这个类型。如果需要在人大金仓中使用 ENUM,可以考虑使用 CHECK 约束或者 VARCHAR 类型,并加上合理的值限制。
    • MySQL

      CREATE TABLE example (status ENUM('active', 'inactive'));

    • 人大金仓

      CREATE TABLE example (status VARCHAR(10) CHECK (status IN ('active', 'inactive')));

  • DATETIMETIMESTAMP

    • MySQL 中有 DATETIMETIMESTAMP 类型,而 人大金仓 使用 TIMESTAMP,它的表现可能有所不同。人大金仓会根据 PostgreSQL 的规范处理 TIMESTAMP 类型,可能需要特别关注时区问题。
    • MySQL

      CREATE TABLE events (event_time DATETIME);

    • 人大金仓

      CREATE TABLE events (event_time TIMESTAMP);

3. 表的引擎设置

  • MySQL 使用 ENGINE 来指定表的存储引擎(如 InnoDBMyISAM 等)。
  • 人大金仓(PostgreSQL)不使用 ENGINE 语法,所有表都使用统一的存储引擎,所以需要删除这些与存储引擎相关的配置。
  • MySQL

    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;

  • 人大金仓

    CREATE TABLE users (id INT SERIAL PRIMARY KEY);

4. 外键约束与索引

  • MySQL 支持外键约束,人大金仓也支持,但语法上可能有些许差异(尤其是在删除/更新外键时的行为可能有所不同)。
  • MySQL

    CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );

  • 人大金仓

    CREATE TABLE orders ( order_id SERIAL PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );

5. 字符串处理函数

  • MySQL 中的一些字符串处理函数与 人大金仓 中的函数可能不完全一样。例如:
    • MySQL

      SELECT CONCAT(first_name, ' ', last_name) FROM users;

    • 人大金仓

      SELECT first_name || ' ' || last_name FROM users;

6. 注释和分隔符

  • MySQL 支持 --# 注释样式,但人大金仓使用 --/* */
  • MySQL

    -- This is a comment # Another comment

  • 人大金仓

    -- This is a comment /* Another comment */

7. LIMITFETCH

  • MySQL 使用 LIMIT 来限制查询的行数。
  • 人大金仓(PostgreSQL)也使用 LIMIT,但在某些情况下,特别是涉及 OFFSET 时,可能需要调整语法。
  • MySQL

    SELECT * FROM users LIMIT 10;

  • 人大金仓

    SELECT * FROM users LIMIT 10;

8. 日期与时间函数

  • MySQL 提供许多日期和时间函数,如 NOW(), CURDATE() 等。
  • 人大金仓 也有类似的函数,但它们的名称和语法可能有所不同。例如,CURRENT_TIMESTAMP 是标准的 SQL 函数。
  • MySQL

    SELECT NOW();

  • 人大金仓

    SELECT CURRENT_TIMESTAMP;

9. 触发器和存储过程

  • MySQL 和人大金仓都支持触发器和存储过程,但语法上有所不同。存储过程和函数在 MySQL 中使用 DELIMITER 来指定分隔符,而人大金仓不需要使用 DELIMITER,直接定义即可。
  • MySQL

    DELIMITER $$ CREATE PROCEDURE my_procedure() BEGIN SELECT 'Hello, World'; END$$ DELIMITER ;

  • 人大金仓

    CREATE OR REPLACE PROCEDURE my_procedure() AS BEGIN RAISE NOTICE 'Hello, World'; END;

10. SQL 调试和测试

在迁移过程中,建议使用人大金仓提供的调试工具,逐步测试每个 SQL 语句,检查是否有语法或功能上的问题,特别是与数据类型、函数、触发器等相关的部分。

总结:

要将 MySQL 的 .sql 文件修改成能在人大金仓中运行的文件,主要的调整集中在以下几个方面:

  1. 替换 MySQL 特有的数据类型和关键字(如 AUTO_INCREMENTSERIAL)。
  2. 删除与存储引擎相关的配置(如 ENGINE=InnoDB)。
  3. 替换不兼容的函数(如字符串拼接、日期函数等)。
  4. 根据人大金仓的 SQL 标准调整外键和约束的语法。
  5. 确保注释和分隔符的语法符合人大金仓的规范。

在修改完成后,建议在人大金仓的测试环境中运行 SQL 文件,确保没有语法错误或功能冲突。

举例:
Mysql:

CREATE TABLE `member` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,`ip` varchar(255) DEFAULT NULL,`name` varchar(255) DEFAULT NULL,`app_id` varchar(255) DEFAULT NULL,`group_id` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Kingbase:

CREATE TABLE "member" ("id" BIGSERIAL NOT NULL,  -- 使用 BIGSERIAL 替代 AUTO_INCREMENT"create_time" TIMESTAMP DEFAULT NULL,-- 使用 TIMESTAMP 替代 datetime"update_time" TIMESTAMP DEFAULT NULL,"ip" VARCHAR(255) DEFAULT NULL,"name" VARCHAR(255) DEFAULT NULL,"app_id" VARCHAR(255) DEFAULT NULL,"group_id" VARCHAR(255) DEFAULT NULL,PRIMARY KEY ("id")
);

2.配置数据

人大金仓使用sql编辑器执行和导入脚本;


3.配置文件修改

原来的application.yml如下:

spring:jpa:database: mysqlshow-sql: truehibernate:ddl-auto: updatenaming:physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategydatabase-platform: org.hibernate.dialect.MySQL5InnoDBDialect  #不加这句则默认为myisam引擎profiles:active: ${ENV:local}
logging:file: ./logback.log
server:port: 8888

修改后如下:

spring:jpa:show-sql: truehibernate:ddl-auto: updatenaming:physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategydatabase-platform: org.hibernate.dialect.MySQL5InnoDBDialect  # 使用人大金仓兼容的Mysql的方言profiles:active: ${ENV:local}  # 默认激活 local 配置文件
logging:file: ./logback.log
server:port: 8888

application-local.yml

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/blockchain_manager?autoReconnect=true&useUnicode=true&useSSL=falseusername: rootpassword: 123456

修改后:

spring:datasource:url: jdbc:kingbase8://localhost:54321/database8  # 人大金仓数据库的连接 URLusername: ****  # 人大金仓数据库的用户名password: ****  # 人大金仓数据库的密码driver-class-name: com.kingbase8.Driver  # 人大金仓数据库的驱动类

application-prod.yml:

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://${MYSQL_URL}/blockchain_manager?autoReconnect=true&useUnicode=trueusername: mdpassword: ${MYSQL_PASS}
server:port: 8080

修改后:

spring:datasource:url: jdbc:kingbase8://${KINGBASE_URL}:54321/blockchain_manager  # 人大金仓数据库的连接 URLusername: SYSTEM  # 人大金仓数据库的用户名password: ${KINGBASE_PASS}  # 人大金仓数据库的密码driver-class-name: com.kingbase8.Driver  # 人大金仓数据库的驱动类
server:port: 8080

application-prod.yml 中的KINGBASE_URL以及KINGBASE_PASS在生产环境中设置环境变量即可;

可以通过终端设置环境变量。比如,如果你使用的是 bashzsh,可以在终端中使用以下命令设置环境变量:

export KINGBASE_URL=your_kingbase_url
export KINGBASE_PASS=your_kingbase_password

如果你希望在每次启动终端时都能自动设置这些环境变量,可以将这些命令添加到 ~/.bashrc(或者 ~/.zshrc)文件中:

echo "export KINGBASE_URL=your_kingbase_url" >> ~/.bashrc
echo "export KINGBASE_PASS=your_kingbase_password" >> ~/.bashrc

注:如何在 Spring Boot 中引用环境变量

application-prod.yml 文件中引用环境变量时,Spring Boot 会自动解析环境变量并将其替换。例如:

spring:datasource:url: jdbc:kingbase8://${KINGBASE_URL}:54321/blockchain_managerusername: SYSTEMpassword: ${KINGBASE_PASS}driver-class-name: com.kingbase8.Driver

http://www.ds6.com.cn/news/112033.html

相关文章:

  • 做游戏数据分析的网站北京seo做排名
  • 怎么做门户网站注册一个域名需要多少钱
  • 免费看电影的网站是什么西安网约车平台
  • 网站群建设技术方案网店推广费用多少钱
  • 活动公司南宁哪里有seo推广厂家
  • 步骤流程搜索引擎优化是什么工作
  • 西安机场商务宾馆百度做网站竞价推广代运营服务
  • 公司做网站费用会计分录网络营销的表现形式有哪些
  • python做网站步骤互联网产品营销策划方案
  • 企石镇做网站如何让百度快速收录新网站
  • wordpress获得所有分类关键词seo公司真实推荐
  • flash网站推荐自助建站系统
  • 网站建设项目安排计划表海外推广运营
  • 百度给做网站吗谷歌安装器
  • 怎么做点击图片进入网站查权重网站
  • 杭州网站建设 网络服务全球热搜榜排名今日
  • 导航网址网站怎么做aso关键词优化计划
  • 怎么制作网站的网页设计建网站教程
  • 网络广告策划书模板百度网站优化工具
  • 营销企业网站制作百度人工客服电话24小时
  • 成都网站建设科技公百度快照怎么弄
  • 潮州移动网站建设优化方案模板
  • 网站设计公司皆选奇点网络排名seo公司哪家好
  • 番禺网站制作费用女生学市场营销好吗
  • 珠海企业网站建设公司品牌营销策划与管理
  • 兰州网站建设|兰州网站制作|兰州网站设计公司|兰州网络公司上海搜索seo
  • 提升了自己的网站网页设计制作网站教程
  • 东莞快速做网站软文营销怎么做
  • 廊坊seo整站优化软件企业网站营销的优缺点
  • 网络推广和网站推广的关系个人网站该怎么打广告