[Probleemoplosser] Een database tabel kopieren

Bespreek het databaseprogramma
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

[Probleemoplosser] Een database tabel kopieren

Bericht door RPG »

Hallo

Wanneer wij reeds een tabel hebben in een andere database dan is het niet altijd zo gemakkelijk om dat in OpenOffice.org Base te krijgen. De bron van de data is belangrijk. Als wij de bron al zichtbaar kunnen maken in OpenOffice.org dan kan het kopieren misschien gemakkelijk gaan. De tabellen laten zicht vaak gemakkelijk kopieren. In deze handleiding wil ik het hebben over tabellen die wij in een werkblad hebben en daar ook kunnen bewerken. Dit stuk wil het kopieren niet in totaliteit behandelen maar alleen enkele mogelijkheden. Dit betekent dat experimenteren is aan te bevelen mits men de belangrijke data veilig stelt. Het experimenteren kan beter op test gegevens gebeuren dat met echt belangrijke gegevens.


Kopieren van tabellen
Selecteer en copieer de tabel die gekopieerd moet worden. Dit kan zowel een tabel zijn uit een werkblad als een tabel uit een database.
Ga nu naar de database waar de tabel moet komen.
Zorg dat de tabelnamen zichtbaar zijn.
Plak nu de gecopieerde tabel.
Wijzig eventueel allerlei namen en andere dingen.


Wijzigen van een veld i.v.m. een Primary Key
Een database in OOo-base heeft een primary key nodig. Een primary key kan op verschillende manieren ingebracht worden.
Door middel van deze opdracht

Code: Selecteer alles

alter table "Yourtabel_name"
		 alter column "your_Identifier"
		 BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY
Het kan gebeuren dat de waarde voor het volgende getal niet goed is in gesteld dan kan men dit gebruiken

Code: Selecteer alles

ALTER TABLE "Yourtabel_name" ALTER COLUMN "ID" 
    RESTART WITH  <vul hier de waarde in>
Gebruik maken van handig kopieren
Een andere manier is door handig copieren van tabellen en de definities.
Als je een tabel heb die niet de goede veldeigenschappen heeft dan kun je dit veranderen met allerlei SQL opdrachten. Dit is een goede methode voor die dit willen leren maar voor anderen kan het heel verstandig zijn om handig gebruik te maken van copieren en plakken van tabellen en definitie en tegelijk daar verandering in te brengen.
Je heb een tabel met een veld ID en je wilt hier een primary key van maken.
Kopieer eerst de tabel definitie zonder ID
Kopieer nu nieuwe de tabel definitie en voeg daarin een primary key in met de naam ID
kopieer nu de tabel data naar de tabel met de gemaakte primary key
Zorg met al het kopieren dat de volgorde van de velden gelijk blijft.


Kopieren van tabellen om de tabel definitie te veranderen
Het maken van de velden voor de database is een belangrijke stap. Nu wil ik daar niet zoveel over zeggen maar belangrijk blijft het toekennen van veldeigenschappen. Als een van de velden een primary key functie krijgt neem dat dan nog niet meer met het kopieren van alleen de namen.
Kopieer nu alle namen behalve die voor de primary key.
Plak het geheel in het tabellen venster van de database.


Mogelijkheden tijdens het kopieren
Het eerste blad
Geef de gewenst naam aan de database
Kies alleen voor definition
Vink aan het vakje van de primary key.
Geef de gewenste naam op of accepteer wat er staat..


Het tweede tabblad Over de colommen.
Breng alle velden over van de linker kant naar de rechter kant. Hou de zelfde volgorde aan.

Definieren van de veld eigenschappen
Elk veld laat zich nu precies definieren zoal je het wilt hebben.
Let speciaal op:
a)Veldnamen Er is een mogelijk heid om het te veranderen
b) Veld type Dit is echt belangrijk voor de verschillen die er bestaan. Geeft naast het veld type ook andere gevens die gevraagd worden.
kies text (Varchar of varchar_ignorecase) Het laatste maakt geen verschill tussen kleine en hoofdletters
Integer Voor gehele getallen.
Decimal voor financiele waarden
Real voor wetenschappelijke notaties van getallen
Yes/NO voor Boolean waardes
Date Voor datum
Time Voor tijd
Date/Time voor datum en tijd

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4