sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man autoinkrementerar en varchar

  1. Tanken med databasdesign är att hålla varje dataelement separat. Och varje element har sin egen datatyp, begränsningar och regler. Den där c0002 är inte ett fält, utan två. Samma med XXXnnn eller vad som helst. Det är felaktigt och det kommer att kraftigt begränsa din förmåga att använda data och använda databasfunktioner och -faciliteter.

    Dela upp det i två diskreta dataobjekt:
    column_1 CHAR(1)
    column_2 INTEGER

    Ställ sedan in AUTOINCREMENT på column_2

    Och ja, din primära nyckel kan vara (column_1, column_2) , så du har inte förlorat någon mening med c0002 har för dig.

  2. Placera aldrig leverantörer och kunder (vad "c" och "s" än betyder) i samma tabell. Om du gör det kommer du inte att ha en databastabell, du kommer att ha en platt fil. Och olika problem och begränsningar till följd av det.

    Det betyder, normalisera data. Du kommer att sluta med:

    • en tabell för Person eller Organisation som innehåller de vanliga uppgifterna (Name, Address ...)
    • en tabell för Customer som innehåller kundspecifik data (CreditLimit ...)
    • en tabell för Supplier som innehåller leverantörsspecifik data (PaymentTerms ...)
    • inga tvetydiga eller valfria kolumner, därför inga nollor
    • inga begränsningar för användning eller SQL-funktioner
      .

    Och när du behöver lägga till kolumner gör du det bara där det krävs, utan att påverka alla andra stämningar i den platta filen. Effektens omfattning är begränsad till förändringens omfattning.



  1. Utveckling av feltolerans i PostgreSQL:Tidsresor

  2. Hur man delar upp ett kommaseparerat värde till kolumner

  3. Installera PostgreSQL på Ubuntu 18.04

  4. Hur man returnerar en lista över områden som stöds i Oracle