我在SQLite中有几个表,我试图弄清楚如何重置自动递增的数据库字段.
我读到DELETE FROM tablename
应删除所有内容并将自动增量字段重置为0
,但是当我这样做时它只删除数据.插入新记录后,自动增量会在删除之前从中断处继续.
我的ident
字段属性如下:
integer
PRIMARY KEY
,AUTOINCREMENT
,UNIQUE
我在SQLite Maestro中构建表并且我在SQLite Maestro中执行DELETE
语句也一样重要吗?
任何帮助都会很棒.
当使用std::vector
s,std::list
s(或其他STL容器)时,我碰巧经常写这个,因为代码短缺(而不是vec[index]
每次都显式)和内存分配效率(避免复制/移动),我想我不是只有一个这样做:
std::vector<A> vec;
vec.emplace_back();
A &element = vec[vec.size()-1];
element.prop = "value";
Run Code Online (Sandbox Code Playgroud)
为什么不STL容器emplace
,emplace_back
而emplace_front
方法返回一个T&
?这将允许一个人简单地写这个而不是使用阴影vec.size()-1
:
std::vector<A> vec;
A &element = vec.emplace_back();
element.prop = "value";
Run Code Online (Sandbox Code Playgroud) 当我在SQLite数据库中创建表时,会自动为每个表创建单独的序列.
但是我想在我的SQLite数据库中为所有表使用一个序列,并且还需要设置min
和定义该序列的max
值(例如min=10000
和max=999999
)(min
并且max
表示序列的起始值和序列可以递增的最大值).
我知道这可以在Oracle数据库中完成,但不知道如何在SQLite中完成.
有没有办法做到这一点?
我绝对是一个绝望的案例......使用C++,我已经定义了这两个类:
// Console.hpp
#ifndef CLASS_Console
#define CLASS_Console
#include <iostream>
#include "Window.hpp"
class Console
{
public:
Window *Win;
Console(Windows *Win); // Which then does "this->Win = Win;"
void AppendText(std::string);
// And some more dozens functions
};
#endif
// Window.hpp
#ifndef CLASS_Window
#define CLASS_Window
#include <iostream>
#include "Size.hpp"
class Window
{
private:
Console *m_Console;
public:
Window(); // Which then does "m_Console = new Console(this); m_Console->AppendText("YEAH");"
Console *getConsole(); // For use by another classes
Size getSize();
// And some more Tens and Tens …
Run Code Online (Sandbox Code Playgroud)