Cześć,
mam taki model w firmie, że laduje do bazy tabele z csv, która ma okolo 18 pól.
Nie ma tam primary key.
Pracuję na MS Access, ale pytanie jest ogólnie o konstrukcje baz danych.
Na accessie można tak importować dane bez key'a:
http://www.mendipdatasystems.co.uk/synchronise-data-2/4594514002
Napisałem takiego SQLka, aby wyeliminować nulle i sprawdzić co jest w jednej tabeli a czego nie ma w drugiej:
SELECT DISTINCT *
FROM tblvolumes AS t2
LEFT JOIN qryim_sourcevolumes AS t1
ON ( t2.percentsnapshotspace = t1.percentsnapshotspace
OR ( t2.percentsnapshotspace IS NULL
AND t1.percentsnapshotspace IS NULL ) )
AND ( t2.filesystemtype = t1.filesystemtype
OR ( t2.filesystemtype IS NULL
AND t1.filesystemtype IS NULL ) )
AND ( t2.disknumber = t1.disknumber
OR ( t2.disknumber IS NULL
AND t1.disknumber IS NULL ) )
AND ( t2.volumenameidfk = t1.volumenameidfk
OR ( t2.volumenameidfk IS NULL
AND t1.volumenameidfk IS NULL ) )
AND ( t2.physicaldiskmodelidfk = t1.physicaldiskmodelidfk
OR ( t2.physicaldiskmodelidfk IS NULL
AND t1.physicaldiskmodelidfk IS NULL ) )
AND ( t2.tierid = t1.tierid
OR ( t2.tierid IS NULL
AND t1.tierid IS NULL ) )
AND ( t2.ordinal = t1.ordinal
OR ( t2.ordinal IS NULL
AND t1.ordinal IS NULL ) )
AND ( t2.environmentid = t1.environmentid
OR ( t2.environmentid IS NULL
AND t1.environmentid IS NULL ) )
AND ( t2.sharemode = t1.sharemode
OR ( t2.sharemode IS NULL
AND t1.sharemode IS NULL ) )
AND ( t2.subjectcomponent = t1.subjectcomponent
OR ( t2.subjectcomponent IS NULL
AND t1.subjectcomponent IS NULL ) )
AND ( t2.formatcommand = t1.formatcommand
OR ( t2.formatcommand IS NULL
AND t1.formatcommand IS NULL ) )
AND ( t2.description = t1.description
OR ( t2.description IS NULL
AND t1.description IS NULL ) )
AND ( t2.function = t1.function
OR ( t2.function IS NULL
AND t1.function IS NULL ) )
AND ( t2.caching = t1.caching
OR ( t2.caching IS NULL
AND t1.caching IS NULL ) )
AND ( t2.writeacceleratorenabled = t1.writeacceleratorenabled
OR ( t2.writeacceleratorenabled IS NULL
AND t1.writeacceleratorenabled IS NULL ) )
AND ( t2.caching = t1.caching
OR ( t2.caching IS NULL
AND t1.caching IS NULL ) )
WHERE ( ( ( t1.ordinal ) IS NULL )
AND ( ( t1.environmentid ) IS NULL )
AND ( ( t1.tierid ) IS NULL )
AND ( ( t1.physicaldiskmodelidfk ) IS NULL )
AND ( ( t1.volumenameidfk ) IS NULL )
AND ( ( t1.disknumber ) IS NULL )
AND ( ( t1.filesystemtype ) IS NULL )
AND ( ( t1.percentsnapshotspace ) IS NULL )
AND ( ( t1.sharemode ) IS NULL )
AND ( ( t1.subjectcomponent ) IS NULL )
AND ( ( t1.formatcommand ) IS NULL )
AND ( ( t1.description ) IS NULL )
AND ( ( t1.function ) IS NULL )
AND ( ( t1.caching ) IS NULL )
AND ( ( t1.writeacceleratorenabled ) IS NULL ) );
I teraz pytanie - bo usłyszałem, że mam beznadziejnie zaprojektowany model - czy tak jest naprawdę?
Czy pracujecie też na tabelach które maja wiecej niz 15 pól?
Co jest w tym zlego ze dostaje dane w pliku csv bez key'a ?
Podpowiedźcie proszę,
Jacek