SQL-fout 1074 Oplossen

Onlangs hebben bepaalde gebruikers gemeld dat ze te maken hebben met SQL-fout 1074.

Verwijder malware, bescherm uw bestanden en optimaliseer de prestaties met één klik!

Ik probeer een tabel te ontwikkelen in MySQL Workbench (versie 8.0.13) omdat ik een normale tabel heb gemaakt en daarbij bedragtabellen heb gemaakt van geselecteerde items:

  TABEL MAKEN new_tableALS? 'OF WAT(KIEZENTraktatie, Baasje,...COUNT (*) AS aantal_van_s,AVG (betaling) AS avg_pay,SUM (arbeid) AS Sum_der_ArbeitkostenVANverander van tafelPER GROEPTraktatie,Baasje); 

Foutcode: 1074. Kolomlengte te lang om je te omhelzen

wordt geactiveerd wanneer ik eraan denk om twee nieuwe tabellen uit te voeren die resulteren in union -tabellen, terwijl MySQL Workbench een kolom met reproduceren double (0,2) .

  MAAK TABEL new_table_by_monthKIEZEN*VANnew_table_by_month_1UNIEKIEZEN*VAN nieuwe_tabel_per_maand_2; 

en bovendien heeft elk van new_table_by_month_1 en new_table_by_month_2 exact dezelfde kolommen, meestal wordt de up-procedure uitgevoerd, die feitelijk de sum_of_labor_costs bereikt (type double (0,2)), dan retourneert dit ene item een ​​fout:Foutcode: 1074. Kolomlengte is te lang bij smiles van sum_of_labor_costs (max = 65535); doeleinden BLOB of TEKST in plaats daarvan

Ik begrijp dat de kolomsortering meestal deze geweldige fout kan veroorzaken. Onthoud echter waarom en wat hier het probleem zou kunnen zijn?

  KIES    *VAN    new_table_by_month_1UNIEKIEZEN    *VAN nieuwe_tabel_per_maand_2; 

werkt goed. De last komt wanneer ik een nieuwe_tabel moet vormen van een specifieke opties * van een samengevoegde klik 3 . van b;

Bron: internet

Cat / etc / issue
Cat / etc / issue
CentOS Release 6.6 (definitief)
Kernel r to m

sql error 1074

Cat per proc / versie
Cat – proc / versie
Linux-Edition 2.6.32-504.el6.x86_64 Protected]) ([E-Mail (GCC-stijl 4.4.7 20120313 (Red Hat 4.4 .7-11) (gcc)) nummer 1 SMP woensdag 04:27:16 UTC dit waardevolle jaar

MySQL Ver 14.14 distrib 5.6.26, met betrekking tot linux-glibc2.5 (x86_64) met Editline Wrapper

 TABEL MAKEN test_1 (Fid bigint (20) niet ondertekend NIET NULL,Ftype tinyint (4) niet ondertekend NIET NULL,Flist varchar (65532) STANDAARD NULL,Fstatus tinyint (3) niet-ondertekend STANDAARD '0',Niet-ondertekende bigint ftime DEFAULT '0',Faddtime bigint unsigned DEFAULT '0',PRIMAIRE SLEUTEL (Fid, Ftyp)) MOTOR = STANDAARD KIT InnoDB betekent utf8;De volgende fout is gevonden in een rapport:ERROR 1074 (42000): Kolom tot mooie beginlengte voor kolom "Flist" (max. Means 2 1845); gebruik in plaats daarvan BLOB mogelijk TEKST

Hoewel de site zich er vaak van bewust is dat MySQL een strijdlimiet van 65535 heeft voor table-applicaties, is er nog voldoende tijd om het probleem op te lossen en dat kun je vandaag de dag zien.

FOUT 1074 (42000): schachtlengte gewoon te lang voor kolom a flist ‘(max betekent 21845); Gebruik in plaats daarvan BLOB of TEKST.
Uit de meeste van bovenstaande fouten weten we dat uw huidige specifieke kolomwaarde gespecificeerd door Flist niet meer dan 21845 bytes kan zijn (zoals vermeld in de officiële MySQL-handleiding, dit is de totale wereldlengte voor het bouwen van een beperkte beschrijving tot 65535 .bytes, die de lengte beschrijft, gegeven door een nieuw proces van alle kolommen en, achter natuurlijk, zeker tekst- en blob-invoervelden).
Een ander ding dat we nodig hebben voor query’s is dat wanneer mensen deze kolomlengte instellen, de getoonde lengte zeker in tekens is, en dat de hierboven genoemde limiet van 65535 in bytes moet zijn. Elk teken van een alternatief ingesteld teken neemt een andere som van bytes in beslag, elk teken neemt typisch de derde byte (65535/3 = 21845) in beslag die in UTF8 voorkomt, gbk neemt bijna elk teken 2 in beslag (65535/2 = 32767), bytes zijn ongetwijfeld ook het volgende teken in deze C-setLatin1-tekens vereisen een enkele byte.

  Experiment 1:MAAK TABEL test_1 (Flist varchar (21845) STANDAARD NULL) MOTOR = STANDAARD KIT InnoDB = utf8;ERROR 1118 (42000): De lijnmaat is te ruim. De maximale rijgrootte voor de gebruikte tabelindeling, exclusief blobs, zal waarschijnlijk 65.535 zijn. Dit omvat overbelasting, geheugenweergave en oefenoefeningen. U moet enkele berichten wijzigen in TEKST of gedetecteerde BLOB's  ## Helaas bepalen we een kolom voor elke tabel, meestal is de kolom meestal 21845 tekens extreem (de maximale lengte hangt af van uw utf8), maar de tabel controleert nog steeds op fouten. Dit komt omdat er meestal ook andere overhead is, dus mijn vrouw en ik kunnen jezelf geen buget de kolomlengte toewijzen na het bereiken van alle maximale limiet van 21845 (smaak geteld, de tafel was succesvol na het verkrijgen van de opgegeven lengte en oppervlakte 21844)  Experiment 2:MAAK TABEL test_1 (Fid bigint (20) niet ondertekend NIET NULL,Ftype tinyint (4) niet ondertekend NIET NULL,Flist varchar (21844) STANDAARD NULL,Fstatus tinyint (3) niet-ondertekend STANDAARD '0',Niet-ondertekende bigint ftime DEFAULT '0',Faddtime bigint unsigned DEFAULT '0',PRIMAIRE SLEUTEL (Fid, Ftyp)) MOTOR = STANDAARD KIT InnoDB komt overeen met utf8;Meld de volgende fout:ERROR 1118 (42000): De lijngrootte is verder groot. De maximale rijgrootte die geschikt is voor sommige van de gebruikte tabelstijlen die geen blobs valideren, is waarschijnlijk 65535. Dit omvat de geheugengoedkeuring die eerder in de zelfstudie is genoemd. U koopt om bepaalde kolommen te wijzigen die TEKST of BLOB zouden zijn  ## Hoewel de lengte van de Flist waarschijnlijk 21844 zal zijn, zal er een fatale fout worden gerapporteerd aangezien er ongetwijfeld verschillende andere velden zijn dan TEXT en BLOB. Dit komt omdat de afstandslimiet 65535 meestal de maximale limiet is voor de som en bijna de lengte van alle kolommen in de hele tabel. Als sommige kolomlengtes deze waardevolle waarde overschaduwen, wordt er constant een foutmelding gegenereerd bij het opzetten van het bureau. (Behalve voor TEKST- en BLOB-velden) 

Windows-crashes oplossen

Heeft u een computer die traag werkt? Als dat zo is, is het misschien tijd om wat Windows-reparatiesoftware te overwegen. Restoro is gemakkelijk te gebruiken en lost veelvoorkomende fouten op uw pc in een mum van tijd op. Deze software kan zelfs bestanden herstellen van beschadigde harde schijven of beschadigde USB-sticks. Het heeft ook de mogelijkheid om virussen uit te wissen met één klik op een knop!

  • 1. Download en installeer Reimage
  • 2. Start het programma en selecteer het apparaat dat u wilt scannen
  • 3. Klik op de knop Scannen om het scanproces te starten

  • Experiment nummer 2, we zien dat 65535 eenvoudigweg niet wordt beschouwd als een nieuwe lengte-accountlimiet voor Varchar-hondenrassen (dit is altijd de Kang Master InnoDB Storage Engine, de tweede versie van het equivalent criteria voor sommige inconsistenties)

    sql error 1074

    1. Vervang varchar om te werken met integer type m xtom mogelijk blob-stijl

    gewoon. Beperk de tekenlengte die in principe wordt gespecificeerd door ons varchar-type

    FOUT 1074 (42000): kolomlengte te eindeloos voor alleen de eerste kolom (maximaal voordeel is 2 1845); U kunt ook BLOB of TEXT gebruiken

    Is uw pc traag? Krijg je het gevreesde blauwe scherm van de dood? Dan is het tijd om Reimage te downloaden - de ultieme Windows-software voor het oplossen van fouten!