fix[SQL]: no duplicatas.

This commit is contained in:
damien DELPY 2024-11-23 22:32:41 +01:00
parent 37d0c430c7
commit 50db25c0f0
No known key found for this signature in database
2 changed files with 4643 additions and 4666 deletions

View File

@ -214,7 +214,12 @@ def generate_line_messages(idMembre : str, idFil : str,
idMessage : str = give_not_used_key(idMessageDict) idMessage : str = give_not_used_key(idMessageDict)
contenu : str = "\'" + random_element(pathSentences) + "\'" contenu : str = "\'" + random_element(pathSentences) + "\'"
return construct_line(idMessage, contenu, idFil, idMessage2) # When the first message is declared.
if idMessage2 == '':
idMessage2 = idMessage
return construct_line(idMessage, contenu, idMembre, idFil, \
idMessage2)
def generate_line_modeles(idMembre : str, idModeleEte : str) -> str: def generate_line_modeles(idMembre : str, idModeleEte : str) -> str:
idModele : str = give_not_used_key(idModeleDict) idModele : str = give_not_used_key(idModeleDict)
@ -330,12 +335,20 @@ def generate_table_using_quantite(nbElements : int, nameTable : str,
# #
############################################################################### ###############################################################################
# Need to do it manually, otherwise it is too hard. def remove_duplicata(pathFile : str) -> None:
"""
:param pathFile: a .data file.
"""
lines_seen = set() # holds lines already seen.
# Step 1 : remove the duplicated primary keys, outfile = open("temp.data", "w")
# if there are 2 objects with the same primary key. for line in open(pathFile, "r"):
if line not in lines_seen: # not a duplicate.
outfile.write(line)
lines_seen.add(line)
outfile.close()
# Step 2 : remove the lines that have a foreign key that does not exist. os.rename("temp.data", pathFile)
############################################################################### ###############################################################################
# #
@ -597,6 +610,10 @@ if __name__ == '__main__':
# #
########################################################################### ###########################################################################
# Remove duplicatas.
for nameTable in tablesDict:
remove_duplicata(give_path_file(nameTable))
# Writing in `insert.sql`. # Writing in `insert.sql`.
fileSql = open("insert.sql", 'w+') fileSql = open("insert.sql", 'w+')
fileSql.write("TRUNCATE " + ', '.join(tablesDict) + ";\n") fileSql.write("TRUNCATE " + ', '.join(tablesDict) + ";\n")

File diff suppressed because it is too large Load Diff