CheevoService.Database.Setup C# (CSharp) 메소드

Setup() 공개 정적인 메소드

public static Setup ( ) : void
리턴 void
        public static void Setup()
        {
            /*
            CREATE TABLE available_cheevos
            (
              ID int NOT NULL,
              Title varchar(255) NOT NULL,
              Description varchar(1024) NOT NULL,
              Category varchar(255) NOT NULL,
              Points int NOT NULL,
              CreatedTime datetime NOT NULL,
              PRIMARY KEY(Cheevo_Id)
            )
             */
            /*
            CREATE TABLE popped_cheevos
            (
              Pop_Id int NOT NULL,
              ProposedTime datetime NOT NULL,
              AwardedTime datetime,
              User varchar(255) NOT NULL,
              Cheevo_Id int NOT NULL,
              FirstModerator varchar(255),
              SecondModerator varchar(255),
              PRIMARY KEY(Pop_Id),
              FOREIGN KEY(Cheevo_Id) REFERENCES available_cheevos(Cheevo_Id)
            )
             */

            // Define the SQL Create table statement
            const string createACTable = "CREATE TABLE [available_cheevos] (ID INTEGER primary key, Title TEXT NOT NULL, Description TEXT NOT NULL, Category TEXT NOT NULL, Points int NOT NULL, CreatedTime INTEGER  default current_timestamp, UNIQUE (Title))";
            const string createPCTable = "CREATE TABLE [popped_cheevos] (ID INTEGER primary key, CheevoID int NOT NULL, User TEXT NOT NULL, ProposedTime INTEGER NOT NULL, AwardedTime INTEGER , FirstMod TEXT NOT NULL, SecondMod TEXT, FOREIGN KEY(CheevoID) REFERENCES available_cheevos(ID) )";

            lock (sqliteCon)
            {
                sqliteCon.Open();

                using (SQLiteTransaction sqlTransaction = sqliteCon.BeginTransaction())
                using (SQLiteCommand createACCommand = new SQLiteCommand(createACTable, sqliteCon, sqlTransaction))
                using (SQLiteCommand createPCCommand = new SQLiteCommand(createPCTable, sqliteCon, sqlTransaction))
                {
                    createACCommand.ExecuteNonQuery();
                    createPCCommand.ExecuteNonQuery();
                    sqlTransaction.Commit();
                }
                sqliteCon.Close();
            }
        }