C# 获取模式时如何将autoincrement设置为1
每年年底,我都会有12个表在一定条件下转移到新数据库中。(db2012、db2013等) 通过下面的过程,我从旧数据库中获取模式,并将它们创建到新数据库中。 但是当在每个模式的末尾创建新表时,有一行AUTO_INCREMENT=oldlastvalue of autoincrement value 我怎样才能得到它 1) 在传输数据之前,我必须截断每个表 2) 编写在sql文件中更改此数字的过程 3) ??希望在读取旧数据库时将其作为1 有解决办法吗C# 获取模式时如何将autoincrement设置为1,c#,mysql,C#,Mysql,每年年底,我都会有12个表在一定条件下转移到新数据库中。(db2012、db2013等) 通过下面的过程,我从旧数据库中获取模式,并将它们创建到新数据库中。 但是当在每个模式的末尾创建新表时,有一行AUTO_INCREMENT=oldlastvalue of autoincrement value 我怎样才能得到它 1) 在传输数据之前,我必须截断每个表 2) 编写在sql文件中更改此数字的过程 3) ??希望在读取旧数据库时将其作为1 有解决办法吗 private void CopySchem
private void CopySchemas(string pathname)
{
string [] MyArray = new string[12];
int index = 0;
using (MySqlConnection conn = new MySqlConnection(PublicVariables.cs))
{
using(MySqlCommand cmd = new MySqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='" + PublicVariables.DbName+"'",conn))
{
conn.Open();
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MyArray[index] = reader.GetValue(0).ToString(); // getting only the name of the table for creating my filename.sql
++index;
}
reader.Dispose();
}
for (int i = 0; i < MyArray.Length; ++i)
{
string tblname = MyArray[i];
string fname = pathname +"\\" + tblname + ".sql";
MySqlCommand cmd = new MySqlCommand("SHOW CREATE TABLE " + PublicVariables.DbName + "." + tblname, conn);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
for (int a = 0; a < reader.FieldCount; ++a)
string Schemas = reader.GetValue(a).ToString();
File.WriteAllText(fname,Schemas );
}
reader.Dispose();
}
}
}
private void CopySchemas(字符串路径名)
{
字符串[]MyArray=新字符串[12];
int指数=0;
使用(MySqlConnection conn=newmysqlconnection(PublicVariables.cs))
{
使用(MySqlCommand cmd=new MySqlCommand(“从信息_SCHEMA.TABLES中选择表_NAME,其中表_TYPE='BASE TABLE'和表_SCHEMA='”+PublicVariables.DbName+'”,conn))
{
conn.Open();
MySqlDataReader=cmd.ExecuteReader();
while(reader.Read())
{
MyArray[index]=reader.GetValue(0.ToString();//仅获取用于创建my filename.sql的表的名称
++指数;
}
reader.Dispose();
}
对于(int i=0;i
对于MySQL,命令是:
ALTER TABLE tablename AUTO_INCREMENT = 0
我原以为我从你的头衔上理解了你的问题,但现在我不太确定了。您只是想创建一个表并将标识重置为0吗?您知道,当您使用show create table读取时,您拥有该表的架构,并且在文件末尾,您拥有AUTO_INCREMENT=324(这是任意的)。我希望我的新数据库从新表AUTO_INCREMENT=1开始,让我知道我的答案是否正确。也许我还是不明白。我会试试,我想它会起作用的。它会起到与TRUNCATE相同的效果(我的表是空的)@IsmailGunes,让我知道它对你有什么作用。请记住标记答案,并向上看是的,这很好。有点晚了,但我正忙着另一个节目组,我搜索了如何获取表名的方法。