sql >> Databáze >  >> RDS >> Mysql

Návratová hodnota Dapper MySQL

LAST_INSERT_ID se bude chovat tak, jak jste popsali, ale v předchozím příkazu insert máte nesouvisející chybu kvůli tomu, že na jeho konci není zahrnut středník. Při diagnostice chyb syntaxe v MySQL je řetězec SQL obsažený v chybové zprávě obvykle bezprostředně za chybou syntaxe.

Zvažte reorganizaci svých příkazů pro čitelnost, abyste mohli snadněji identifikovat chyby syntaxe, jako je tato. Například:

public void Insert(TUser member)
{
    string sql = @"
        Insert into users
          (UserName, PasswordHash, SecurityStamp, Email, EmailConfirmed, PhoneNumber, PhoneNumberConfirmed, AccessFailedCount, LockoutEnabled, LockoutEndDateUtc, TwoFactorEnabled)
        values 
          (@name, @pwdHash, @SecStamp, @email, @emailconfirmed, @phonenumber, @phonenumberconfirmed, @accesscount, @lockoutenabled, @lockoutenddate, @twofactorenabled);

        select LAST_INSERT_ID();
    ";

    member.Id = db.Connection.ExecuteScalar<int>(sql, new
    {
      name = member.UserName,
      pwdHash = member.PasswordHash,
      SecStamp = member.SecurityStamp,
      email = member.Email,
      emailconfirmed = member.EmailConfirmed,
      phonenumber = member.PhoneNumber,
      phonenumberconfirmed = member.PhoneNumberConfirmed,
      accesscount = member.AccessFailedCount,
      lockoutenabled = member.LockoutEnabled,
      lockoutenddate = member.LockoutEndDateUtc,
      twofactorenabled = member.TwoFactorEnabled
    });
}

Podle této odpovědi , můžete také odstranit obsazení na LAST_INSERT_ID pokud používáte nejnovější verzi MySQL.




  1. Přístup k WordPressu

  2. Cizí klíč PostgreSQL neexistuje, problém dědičnosti?

  3. Dejte některým polím větší relevanci a seřaďte je podle relevance ve fulltextovém vyhledávání mysql

  4. ZOBRAZIT TABULKY v MariaDB