sql ENGINE=InnoDB AUTO_INCREMENT=16384 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
时间: 2024-06-17 14:06:34 浏览: 20
SQL是结构化查询语言的缩写,是用于访问和处理关系型数据库的标准语言。而InnoDB是MySQL的一种存储引擎,是MySQL的默认存储引擎。它支持事务、行级锁定和外键约束等功能,是MySQL中最常用的存储引擎之一。AUTO_INCREMENT表示自动递增字段,当插入数据时,该字段会自动递增。DEFAULT CHARSET指定了该表的默认字符集,而COLLATE则指定了字符集的排序规则。
因此,ENGINE=InnoDB AUTO_INCREMENT=16384 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin表示该表使用InnoDB存储引擎,自动递增字段为16384,字符集为utf8mb4,排序规则为utf8mb4_bin。
相关问题
CREATE TABLE `advert` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(100) COLLATE utf8mb4_bin NOT NULL COMMENT '广告名称', `position_id` int(20) NOT NULL COMMENT '广告位置ID', `media_id` int(20) NOT NULL COMMENT '广告图片ID', `link` varchar(500) COLLATE utf8mb4_bin NOT NULL COMMENT '广告链接', `status` int(1) unsigned zerofill NOT NULL COMMENT '状态,0:未启用,1:已启用,2:已结束', PRIMARY KEY (`id`) USING BTREE, KEY `FK_ad_image` (`media_id`), KEY `FK_ad_position` (`position_id`), CONSTRAINT `FK_ad_image` FOREIGN KEY (`media_id`) REFERENCES `media_file` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_ad_position` FOREIGN KEY (`position_id`) REFERENCES `ad_position` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告表'; CREATE TABLE `ad_position` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '位置名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告位置表'; CREATE TABLE `media_file` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(30) COLLATE utf8mb4_bin NOT NULL COMMENT '媒体文件名称', `type` tinyint(1) NOT NULL COMMENT '媒体文件类型:0-图片,1-视频', `url` varchar(500) COLLATE utf8mb4_bin NOT NULL COMMENT '媒体文件URL地址', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告媒体文件表'; springboot项目用java写出三张表的orm对象(使用jpa外键依赖),并在有实现类public interface MyBaseMapper<T> extends Mapper<T>, MySqlMapper<T>,MyInsertListMapper<T> {} public interface AdvertMapper extends MyBaseMapper<Advert> {},如何往advert表添加数据
可以按照以下步骤来编写ORM对象并实现往advert表添加数据的操作:
1. 编写Advert、AdPosition和MediaFile的ORM对象:
```java
@Entity
@Table(name = "advert")
public class Advert {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false)
private String name;
@ManyToOne
@JoinColumn(name = "position_id")
private AdPosition position;
@ManyToOne
@JoinColumn(name = "media_id")
private MediaFile media;
@Column(nullable = false)
private String link;
@Column(nullable = false)
private Integer status;
// 省略getter和setter方法
}
@Entity
@Table(name = "ad_position")
public class AdPosition {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false)
private String name;
@OneToMany(mappedBy = "position")
private List<Advert> adverts;
// 省略getter和setter方法
}
@Entity
@Table(name = "media_file")
public class MediaFile {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private Integer type;
@Column(nullable = false)
private String url;
@OneToMany(mappedBy = "media")
private List<Advert> adverts;
// 省略getter和setter方法
}
```
2. 编写AdvertMapper接口,继承自MyBaseMapper,并添加添加广告数据的方法:
```java
public interface AdvertMapper extends MyBaseMapper<Advert> {
// 添加广告数据的方法
@Modifying
@Query(value = "INSERT INTO advert(name, position_id, media_id, link, status) " +
"VALUES(:name, :positionId, :mediaId, :link, :status)", nativeQuery = true)
int addAdvert(@Param("name") String name, @Param("positionId") Integer positionId,
@Param("mediaId") Integer mediaId, @Param("link") String link,
@Param("status") Integer status);
}
```
3. 在添加数据的地方,注入AdvertMapper,并调用addAdvert方法来添加广告数据:
```java
@Service
public class AdvertService {
@Autowired
private AdvertMapper advertMapper;
public void addAdvert(String name, Integer positionId, Integer mediaId, String link, Integer status) {
advertMapper.addAdvert(name, positionId, mediaId, link, status);
}
}
```
以上是使用JPA外键依赖的方式往advert表添加数据的一个示例。需要注意的是,由于使用了自定义的SQL语句,所以需要在addAdvert方法上添加@Modifying和@Query注解,并设置nativeQuery为true。同时,需要在SQL语句中使用表名和列名,而不是ORM对象的实体名和属性名。
DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `user_password` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, PRIMARY KEY (`user_id`) USING BTREE, ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; insert into `user`(`user_id`,`user_name`,`user_password`) values (1,'zxc123','zxc'),(2,'yui','123');有错吗
这段 SQL 语句是创建一个名为 `user` 的表,并向其中插入两行数据。根据语法来看,这段代码是没有问题的。但是如果在实际执行时,发现该表已经存在,就会执行 DROP TABLE 语句删除表,然后再创建一个新表,并插入两行数据。
需要注意的是,如果该表已经存在并且里面有数据,执行 DROP TABLE 语句将会删除整个表和表中的数据,所以需要谨慎操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)