mysql 按自增主键倒排
时间: 2023-10-12 08:11:36 浏览: 42
可以使用ORDER BY子句按照自增主键倒排。假设自增主键列名为id,可以这样写:
```
SELECT * FROM table_name ORDER BY id DESC;
```
其中,DESC表示按照降序排列,即从大到小排序。如果要按照升序排列,可以使用ASC,即:
```
SELECT * FROM table_name ORDER BY id ASC;
```
相关问题
mysql不用自增主键
当使用MySQL时,不使用自增主键是完全可以的。你可以在建表SQL语句中去掉AUTO_INCREMENT关键字,比如:
CREATE TABLE `user` (
`id` int NOT NULL COMMENT '主键',
`name` char(10) NOT NULL DEFAULT '' COMMENT '名字',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
这样创建的表会成功建立,但是MySQL内部会偷偷地为你添加一个名为ROW_ID的隐藏列作为主键。所以你仍然可以插入数据,并且需要自己设置主键的值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [数据库主键一定要自增吗?有哪些场景不建议自增?](https://blog.csdn.net/CRMEB/article/details/125393423)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
scala spark写入mysql overwrite自增主键
在Scala中使用Spark写入MySQL时,如果想要使用overwrite模式来覆盖表中的数据并保留自增主键,可以使用以下方法:
1. 将DataFrame注册为临时表:
```scala
df.createOrReplaceTempView("temp_table")
```
2. 使用SQL语句将数据写入MySQL表中:
```scala
val url = "jdbc:mysql://localhost:3306/test"
val table = "test_table"
val properties = new Properties()
properties.setProperty("user", "root")
properties.setProperty("password", "root")
properties.setProperty("driver", "com.mysql.jdbc.Driver")
spark.sql(s"truncate table $table")
spark.sql(s"insert into $table select * from temp_table")
```
在上面的代码中,truncate语句用于清空表中的数据,insert into语句用于将临时表中的数据写入MySQL表中。由于使用了overwrite模式,如果表中已经存在相同的记录,则会被覆盖,但是自增主键的值会自动增加。