我有一个SQL Anywhere 9数据库,我想将我的一个列上的自动增量值重置为特定数字.
我想我需要SQL-Anywhere相当于:
ALTER TABLE foo AUTO_INCREMENT =100
我有一个包含项目的表(id,name等),我希望某种数据库方案能够拥有该项目的多个副本,同时仍能增加ID.会有一个名为startdate或date_from_which_this_entry_should_be_used的字段.
我想到了两种实现方法:
有一个只有id(主键,自动增量)的表,并连接到包含所有项目信息的表.
好处:
缺点:
使用子选择使用单个表来获取MAX值(+1)以应用于新项目.
好处:
缺点:
提前致谢!
我在APEX中创建了一个表,其中PK由SQL序列递增:
CREATE SEQUENCE seq_increment
MINVALUE 1
START WITH 880
INCREMENT BY 1
CACHE 10
Run Code Online (Sandbox Code Playgroud)
这似乎完美无缺.问题在于,有时候,通常当我早上上班并运行进入新行的过程时,它会跳过一堆数字.我只关心,因为这些数字被用作我公司的文件ID,当这个工具上线时,丢失/跳过数字块是不可接受的.
它确实似乎跳到下一个'10'数字.即昨天我的最后一次测试分配了883,今天早上它将890指定为下一个数字.查看我创建序列的代码,我注意到我已将其设置为缓存10个值,以便更快地处理.是否有可能这个缓存被转储过夜并且它正在拉890,因为它在缓存中有880-889而且它已被转储?
还有其他潜在的原因和解决方案吗?
我遇到了糟糕的表问题,因为我创建了自己的用户类而不是切换到默认的Django类.无数头痛后,我们决定只是做一个干净python manage.py reset的syncdb.创建了一个新用户,但User.id的主键计数器从前一个用户开始,这意味着在创建使用User.id作为主键的其他表时,它们总是处于关闭状态.
我怎么能完全重写,以便从1开始,或者改变计数器,使它现在为2(因为我创建了一个用户)?如果它涉及SQL,请告诉我在哪里放置它,因为我的应用程序托管在Heroku上.
谢谢!
我知道sqlite数据库会自动为插入的每个记录生成一个唯一的id(自动增量).
有没有人知道在执行替换查询时是否有可能在sqlite3数据库中耗尽系统唯一ID?
我的意思是数据库中的每一段数据都有自己的类型.例如,系统唯一ID类似于int.如果数据库生成的唯一ID等于MAX_INT,那么数据库将对下一条记录执行什么操作?
谢谢.
我想创建一个primary key(auto-increment)开头的A001000001.这A001将是不变的并且000001将是迭代的.
我想要这样的行:

我怎么能用SQL查询呢?
我想创建一个user_widgets表,该表以user_id和user_widget_id为主键,其中user_widget_id的工作方式类似于串行,只是每个用户的起始地址为1。
是否有一个通用或实用的解决方案?我正在使用PostgreSQL,但也欢迎使用不可知的解决方案。
表格示例:user_widgets
| user_id | user_widget_id | user_widget_name |
+-----------+------------------+----------------------+
| 1 | 1 | Andy's first widget |
+-----------+------------------+----------------------+
| 1 | 2 | Andy's second widget |
+-----------+------------------+----------------------+
| 1 | 3 | Andy's third widget |
+-----------+------------------+----------------------+
| 2 | 1 | Jake's first widget |
+-----------+------------------+----------------------+
| 2 | 2 | Jake's second widget |
+-----------+------------------+----------------------+
| 2 | 3 | Jake's third widget |
+-----------+------------------+----------------------+
| 3 | 1 | Fred's first widget | …Run Code Online (Sandbox Code Playgroud) 我的表中有两列:a varchar(8)和a int.
我想auto-increment了int column,当我这样做,我想的值复制到varchar(8) column,但用0填充它,直到它是8个字符长,因此,例如,如果int column被递增到3,该varchar(8)列将包含'00000003'.
我的两个问题是,当varchar(8)列到达时会发生什么,'99999999'因为我不想重复?
我将如何在MySQL中执行此操作?
如果我的价值观之间可以00000000来99999999,有多少值可我以前我跑出来了?
这是我的另一种方法,只需创建一个随机的8个字符串并检查MySQL是否重复.我认为这是一种更好的方法,可以提供更多的价值观.
对于你们中的一些人来说这可能很简单,但是我坚持这个.
我正在尝试通过自动递增的唯一ID按降序给出一个博客页面来命令它的条目,它似乎不允许它.尽管SQL请求如下所示,它始终以升序显示:
SELECT * FROM news_blog ORDER BY 'news_id' DESC
Run Code Online (Sandbox Code Playgroud)
是因为新闻id是Integar,因此不允许订购?
提前谢谢了.
我正在使用Fluent Nhibernate。映射类如下所示:
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Id(x => x.CategoryId).UniqueKey("CategoryId").GeneratedBy.Increment();
Map(x => x.CategoryName).Not.Nullable();
References(x => x.ParentCategory).Column("ParentCategoryId").Nullable();
}
}
Run Code Online (Sandbox Code Playgroud)
它像我需要的那样创建表,但是在SSMS中,我看到的CategoryId不是身份。
为什么自动递增(身份)无效?
auto-increment ×10
mysql ×4
sql ×3
postgresql ×2
primary-key ×2
c# ×1
caching ×1
database ×1
django ×1
formatting ×1
mapping ×1
oracle-apex ×1
sql-order-by ×1
sql-server ×1
sqlanywhere ×1
sqlite ×1
unique ×1