Another suggestion based on ZeoS's post and timo.schaffner's post:
Rather than attempting to delete the record from the RKPerson table, rename the name of it to something that you'd never start typing for a name, for example, ...IGNOREME...
This way you don't risk corrupting the other tables that might relate to this record. For instance, as ZeoS pointed out, there's a trigger on that table for deleting records that doesn't execute correctly using the sqlite commandline tool or through the
sqlitebrowser.app
.
You may also find that you can't modify the Person.db because it's "locked."
To fix the first part, stop all background processes that have to do with Photos.app. Closing the app might not be enough. There's a photolibraryd process, and a cloudphotosd process, for example, that seem to have to do with this application, and they seem to stay running regardless of Photos.app being open or not.
In the Terminal.app, you can use something like the following to stop all processes with the word photo in them (warning! this may include other applications that have nothing to do with the photos app):
ps aux | grep -i 'photo' | awk '{print $2}' | xargs kill -HUP
Then, once you locate your Person.db file (the default is in ~/Pictures/Photos Library.photoslibrary/Database/apdb), you can either use that sqlitebrowser.app to modify the record, or you can use the installed sqlite3 terminal command like so (don't do this unless you're reasonably comfortable working in the terminal - getting this wrong could really mess up your face names):
sqlite3 Person.db
sqlite> UPDATE RKPerson SET name="...IGNOREME..." WHERE name="The misspelled name";
sqlite> .exit
(Where you substitute the incorrectly spelled name between the quotes above as shown.)
Now when you use the Photos.app, you won't see any blank name in the drop-down, and the ...IGNOREME... name will only display if you start typing periods for the name suggestion.